Run Generator.Bind
authorFraser Waters <frassle@gmail.com>
Thu, 27 Jul 2017 10:48:38 +0000 (11:48 +0100)
committerFraser Waters <frassle@gmail.com>
Fri, 28 Jul 2017 05:16:51 +0000 (06:16 +0100)
src/OpenTK/Graphics/ES11/ES11.cs
src/OpenTK/Graphics/ES20/ES20.cs
src/OpenTK/Graphics/ES30/ES30.cs
src/OpenTK/Graphics/ES31/ES31.cs
src/OpenTK/Graphics/OpenGL/GL.cs
src/OpenTK/Graphics/OpenGL4/GL4.cs

index 42ecd43..cde3f56 100644 (file)
@@ -951,7 +951,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -973,7 +973,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -995,7 +995,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES11.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Determine if a name corresponds to a sync object
@@ -1236,7 +1236,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES11.All target, Int32 size, IntPtr data, OpenTK.Graphics.ES11.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES11.All target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES11.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Create and initialize a buffer object's data store
@@ -1255,7 +1255,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1276,7 +1276,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1297,7 +1297,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1317,7 +1317,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1337,7 +1337,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES11.All target, IntPtr size, IntPtr data, OpenTK.Graphics.ES11.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES11.All target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES11.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Create and initialize a buffer object's data store
@@ -1356,7 +1356,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1377,7 +1377,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1398,7 +1398,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1418,7 +1418,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES11.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES11.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES11.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -1438,7 +1438,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Update a subset of a buffer object's data store
@@ -1457,7 +1457,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1478,7 +1478,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1499,7 +1499,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1519,7 +1519,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1539,7 +1539,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Update a subset of a buffer object's data store
@@ -1558,7 +1558,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1579,7 +1579,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1600,7 +1600,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1620,7 +1620,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES11.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1744,7 +1744,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanef")]
         [CLSCompliant(false)]
-        public static void ClipPlane(OpenTK.Graphics.ES11.All p, Single[] eqn) { throw new NotImplementedException(); }
+        public static void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Single[] eqn) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a plane against which all geometry is clipped
@@ -1757,7 +1757,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanef")]
         [CLSCompliant(false)]
-        public static void ClipPlane(OpenTK.Graphics.ES11.All p, ref Single eqn) { throw new NotImplementedException(); }
+        public static void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] ref Single eqn) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a plane against which all geometry is clipped
@@ -1770,28 +1770,28 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanef")]
         [CLSCompliant(false)]
-        public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All p, Single* eqn) { throw new NotImplementedException(); }
+        public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Single* eqn) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanex")]
         [CLSCompliant(false)]
-        public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, Int32[] equation) { throw new NotImplementedException(); }
+        public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanex")]
         [CLSCompliant(false)]
-        public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, ref Int32 equation) { throw new NotImplementedException(); }
+        public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] ref Int32 equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glClipPlanex")]
         [CLSCompliant(false)]
-        public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All plane, Int32* equation) { throw new NotImplementedException(); }
+        public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the current color
@@ -1867,12 +1867,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
-        public static void ColorPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void ColorPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of colors
@@ -1886,13 +1886,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1908,13 +1908,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1930,13 +1930,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1952,12 +1952,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -1973,11 +1973,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
-        public static void ColorPointer(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void ColorPointer(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of colors
@@ -1991,12 +1991,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -2012,12 +2012,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -2033,12 +2033,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -2054,11 +2054,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glColorPointer")]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.ES11.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -2091,7 +2091,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -2123,7 +2123,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2157,7 +2157,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2191,7 +2191,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2224,7 +2224,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2256,7 +2256,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -2287,7 +2287,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2320,7 +2320,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2353,7 +2353,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2385,7 +2385,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, OpenTK.Graphics.ES11.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -2421,7 +2421,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -2456,7 +2456,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2493,7 +2493,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2530,7 +2530,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2566,7 +2566,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2601,7 +2601,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -2635,7 +2635,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2671,7 +2671,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2707,7 +2707,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2742,7 +2742,7 @@ namespace OpenTK.Graphics.ES11
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -2895,7 +2895,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2905,7 +2905,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2918,7 +2918,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2931,7 +2931,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2944,7 +2944,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2957,7 +2957,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2970,7 +2970,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named buffer objects
@@ -2983,7 +2983,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -2993,7 +2993,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3003,7 +3003,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3016,7 +3016,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3029,7 +3029,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3042,7 +3042,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3055,7 +3055,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3068,7 +3068,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Delete named textures
@@ -3081,7 +3081,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the value used for depth buffer comparisons
@@ -3210,12 +3210,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Render primitives from array data
@@ -3229,13 +3229,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3251,13 +3251,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3273,13 +3273,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3295,12 +3295,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3316,12 +3316,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Render primitives from array data
@@ -3335,13 +3335,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3357,13 +3357,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3379,13 +3379,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3401,12 +3401,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.BeginMode mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3422,11 +3422,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Render primitives from array data
@@ -3440,12 +3440,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3461,12 +3461,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3482,12 +3482,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3503,11 +3503,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3592,13 +3592,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static void Fog(OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Fog(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify fog parameters
@@ -3606,13 +3606,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static unsafe void Fog(OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Fog(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify fog parameters
@@ -3620,12 +3620,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static void Fog(OpenTK.Graphics.ES11.FogParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Fog(OpenTK.Graphics.ES11.FogParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify fog parameters
@@ -3633,12 +3633,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static unsafe void Fog(OpenTK.Graphics.ES11.FogParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Fog(OpenTK.Graphics.ES11.FogParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -3648,17 +3648,17 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogxv")]
         [CLSCompliant(false)]
-        public static void Fogx(OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void Fogx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glFogxv")]
         [CLSCompliant(false)]
-        public static unsafe void Fogx(OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void Fogx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define front- and back-facing polygons
@@ -3731,7 +3731,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate buffer object names
@@ -3744,7 +3744,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate buffer object names
@@ -3757,7 +3757,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate buffer object names
@@ -3770,7 +3770,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate buffer object names
@@ -3783,7 +3783,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate buffer object names
@@ -3796,7 +3796,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3816,7 +3816,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3829,7 +3829,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3842,7 +3842,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3855,7 +3855,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3868,7 +3868,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Generate texture names
@@ -3881,7 +3881,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -3898,48 +3898,48 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return parameters of a buffer object
@@ -3950,12 +3950,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return parameters of a buffer object
@@ -3966,12 +3966,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return parameters of a buffer object
@@ -3982,12 +3982,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the coefficients of the specified clipping plane
@@ -4000,7 +4000,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanef")]
         [CLSCompliant(false)]
-        public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] Single[] equation) { throw new NotImplementedException(); }
+        public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Single[] equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the coefficients of the specified clipping plane
@@ -4013,7 +4013,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanef")]
         [CLSCompliant(false)]
-        public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] out Single equation) { throw new NotImplementedException(); }
+        public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] out Single equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the coefficients of the specified clipping plane
@@ -4026,28 +4026,28 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanef")]
         [CLSCompliant(false)]
-        public static unsafe void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] Single* equation) { throw new NotImplementedException(); }
+        public static unsafe void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanex")]
         [CLSCompliant(false)]
-        public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] Int32[] equation) { throw new NotImplementedException(); }
+        public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanex")]
         [CLSCompliant(false)]
-        public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] out Int32 equation) { throw new NotImplementedException(); }
+        public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] out Int32 equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="plane"></param>
         /// <param name="equation">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetClipPlanex")]
         [CLSCompliant(false)]
-        public static unsafe void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] Int32* equation) { throw new NotImplementedException(); }
+        public static unsafe void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return error information
@@ -4097,48 +4097,48 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -4155,48 +4155,48 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES11.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4207,13 +4207,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4224,13 +4224,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4241,13 +4241,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetLight(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4258,12 +4258,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4274,12 +4274,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return light source parameter values
@@ -4290,36 +4290,36 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetLight(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightxv")]
         [CLSCompliant(false)]
-        public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightxv")]
         [CLSCompliant(false)]
-        public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetLightxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4330,13 +4330,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4347,13 +4347,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4364,13 +4364,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMaterial(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4381,12 +4381,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4397,12 +4397,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return material parameters
@@ -4413,36 +4413,36 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMaterial(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialxv")]
         [CLSCompliant(false)]
-        public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialxv")]
         [CLSCompliant(false)]
-        public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetMaterialxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -4450,7 +4450,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -4458,7 +4458,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -4466,7 +4466,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the address of the specified pointer
@@ -4479,7 +4479,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES11.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the address of the specified pointer
@@ -4493,7 +4493,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4509,7 +4509,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4525,7 +4525,7 @@ namespace OpenTK.Graphics.ES11
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4540,7 +4540,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4554,7 +4554,7 @@ namespace OpenTK.Graphics.ES11
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES11.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES11.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return the address of the specified pointer
@@ -4567,7 +4567,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4582,7 +4582,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4597,7 +4597,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4611,7 +4611,7 @@ namespace OpenTK.Graphics.ES11
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES11.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -4643,13 +4643,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4660,13 +4660,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4677,13 +4677,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4694,12 +4694,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4710,12 +4710,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4726,12 +4726,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4742,13 +4742,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4759,13 +4759,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4776,13 +4776,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4793,12 +4793,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4809,12 +4809,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture environment parameters
@@ -4825,36 +4825,36 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvxv")]
         [CLSCompliant(false)]
-        public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvxv")]
         [CLSCompliant(false)]
-        public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexEnvxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4865,13 +4865,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4882,13 +4882,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4899,13 +4899,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4916,12 +4916,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4932,12 +4932,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4948,12 +4948,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4964,13 +4964,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4981,13 +4981,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -4998,13 +4998,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -5015,12 +5015,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -5031,12 +5031,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -5047,36 +5047,36 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterxv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterxv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glGetTexParameterxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify implementation-specific hints
@@ -5202,13 +5202,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static void Light(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Light(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set light source parameters
@@ -5219,13 +5219,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void Light(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Light(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set light source parameters
@@ -5236,12 +5236,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static void Light(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Light(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set light source parameters
@@ -5252,12 +5252,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void Light(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Light(OpenTK.Graphics.ES11.LightName light, OpenTK.Graphics.ES11.LightParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the lighting model parameters
@@ -5290,13 +5290,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static void LightModel(OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void LightModel(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the lighting model parameters
@@ -5304,13 +5304,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static unsafe void LightModel(OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void LightModel(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the lighting model parameters
@@ -5318,12 +5318,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static void LightModel(OpenTK.Graphics.ES11.LightModelParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void LightModel(OpenTK.Graphics.ES11.LightModelParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the lighting model parameters
@@ -5331,12 +5331,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static unsafe void LightModel(OpenTK.Graphics.ES11.LightModelParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void LightModel(OpenTK.Graphics.ES11.LightModelParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -5346,17 +5346,17 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelxv")]
         [CLSCompliant(false)]
-        public static void LightModelx(OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void LightModelx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightModelxv")]
         [CLSCompliant(false)]
-        public static unsafe void LightModelx(OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void LightModelx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
@@ -5368,18 +5368,18 @@ namespace OpenTK.Graphics.ES11
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightxv")]
         [CLSCompliant(false)]
-        public static void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="light"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLightxv")]
         [CLSCompliant(false)]
-        public static unsafe void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the width of rasterized lines
@@ -5409,7 +5409,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Replace the current matrix with the specified matrix
@@ -5419,7 +5419,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Replace the current matrix with the specified matrix
@@ -5429,25 +5429,25 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void LoadMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixx")]
         [CLSCompliant(false)]
-        public static void LoadMatrixx(Int32[] m) { throw new NotImplementedException(); }
+        public static void LoadMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixx")]
         [CLSCompliant(false)]
-        public static void LoadMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+        public static void LoadMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glLoadMatrixx")]
         [CLSCompliant(false)]
-        public static unsafe void LoadMatrixx(Int32* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a logical pixel operation for rendering
@@ -5508,13 +5508,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static void Material(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Material(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify material parameters for the lighting model
@@ -5525,13 +5525,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void Material(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Material(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify material parameters for the lighting model
@@ -5542,12 +5542,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static void Material(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Material(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify material parameters for the lighting model
@@ -5558,12 +5558,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void Material(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Material(OpenTK.Graphics.ES11.MaterialFace face, OpenTK.Graphics.ES11.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
@@ -5575,18 +5575,18 @@ namespace OpenTK.Graphics.ES11
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialxv")]
         [CLSCompliant(false)]
-        public static void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="face"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMaterialxv")]
         [CLSCompliant(false)]
-        public static unsafe void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify which matrix is the current matrix
@@ -5667,7 +5667,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static void MultMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Multiply the current matrix with the specified matrix
@@ -5677,7 +5677,7 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static void MultMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Multiply the current matrix with the specified matrix
@@ -5687,25 +5687,25 @@ namespace OpenTK.Graphics.ES11
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void MultMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void MultMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixx")]
         [CLSCompliant(false)]
-        public static void MultMatrixx(Int32[] m) { throw new NotImplementedException(); }
+        public static void MultMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixx")]
         [CLSCompliant(false)]
-        public static void MultMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+        public static void MultMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="m">[length: 16]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glMultMatrixx")]
         [CLSCompliant(false)]
-        public static unsafe void MultMatrixx(Int32* m) { throw new NotImplementedException(); }
+        public static unsafe void MultMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the current normal vector
@@ -5738,12 +5738,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer(OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void NormalPointer(OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of normals
@@ -5754,13 +5754,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5773,13 +5773,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5792,13 +5792,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5811,12 +5811,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5829,11 +5829,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void NormalPointer(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of normals
@@ -5844,12 +5844,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5862,12 +5862,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5880,12 +5880,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5898,11 +5898,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.ES11.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5946,7 +5946,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, Int32[] values) { throw new NotImplementedException(); }
+        public static void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [CountAttribute(Parameter = "size")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -5954,7 +5954,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, ref Int32 values) { throw new NotImplementedException(); }
+        public static void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [CountAttribute(Parameter = "size")] ref Int32 values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -5962,7 +5962,7 @@ namespace OpenTK.Graphics.ES11
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMapx(OpenTK.Graphics.ES11.All map, Int32 size, [CountAttribute(Parameter = "size")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set pixel storage modes
@@ -6013,12 +6013,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static void PointParameter(OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void PointParameter(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify point parameters
@@ -6026,12 +6026,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameter(OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameter(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -6041,17 +6041,17 @@ namespace OpenTK.Graphics.ES11
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glPointParameterxv")]
         [CLSCompliant(false)]
-        public static void PointParameterx(OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void PointParameterx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glPointParameterxv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameterx(OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameterx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the diameter of rasterized points
@@ -6116,12 +6116,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Read a block of pixels from the frame buffer
@@ -6144,13 +6144,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6175,13 +6175,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6206,13 +6206,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6237,12 +6237,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6267,11 +6267,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Read a block of pixels from the frame buffer
@@ -6294,12 +6294,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6324,12 +6324,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6354,12 +6354,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6384,11 +6384,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6624,12 +6624,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of texture coordinates
@@ -6643,13 +6643,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6665,13 +6665,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6687,13 +6687,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6709,12 +6709,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6730,11 +6730,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of texture coordinates
@@ -6748,12 +6748,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6769,12 +6769,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6790,12 +6790,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6811,11 +6811,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.ES11.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6859,13 +6859,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6876,13 +6876,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6893,12 +6893,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6909,12 +6909,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6956,13 +6956,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6973,13 +6973,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -6990,12 +6990,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture environment parameters
@@ -7006,12 +7006,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.ES11.TextureEnvTarget target, OpenTK.Graphics.ES11.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
@@ -7023,18 +7023,18 @@ namespace OpenTK.Graphics.ES11
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvxv")]
         [CLSCompliant(false)]
-        public static void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexEnvxv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image
@@ -7063,12 +7063,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image
@@ -7097,13 +7097,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7134,13 +7134,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7171,13 +7171,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7208,12 +7208,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7244,11 +7244,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image
@@ -7277,12 +7277,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7313,12 +7313,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7349,12 +7349,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7385,11 +7385,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7433,13 +7433,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7450,13 +7450,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7467,12 +7467,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7483,12 +7483,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7530,13 +7530,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7547,13 +7547,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7564,12 +7564,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -7580,12 +7580,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES11.TextureTarget target, OpenTK.Graphics.ES11.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
@@ -7597,18 +7597,18 @@ namespace OpenTK.Graphics.ES11
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterxv")]
         [CLSCompliant(false)]
-        public static void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexParameterxv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture subimage
@@ -7637,12 +7637,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture subimage
@@ -7671,13 +7671,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7708,13 +7708,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7745,13 +7745,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7782,12 +7782,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7818,11 +7818,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture subimage
@@ -7851,12 +7851,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7887,12 +7887,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7923,12 +7923,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -7959,11 +7959,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES11.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES11.PixelFormat format, OpenTK.Graphics.ES11.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -8001,12 +8001,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of vertex data
@@ -8020,13 +8020,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8042,13 +8042,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8064,13 +8064,13 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8086,12 +8086,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8107,11 +8107,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexPointer(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define an array of vertex data
@@ -8125,12 +8125,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8146,12 +8146,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8167,12 +8167,12 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8188,11 +8188,11 @@ namespace OpenTK.Graphics.ES11
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_ES_CM_1_0", Version = "1.0", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8241,7 +8241,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, OpenTK.Graphics.ES11.All[] attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES11.All[] attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -8249,7 +8249,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, ref OpenTK.Graphics.ES11.All attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES11.All attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -8257,7 +8257,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, OpenTK.Graphics.ES11.All* attachments) { throw new NotImplementedException(); }
+            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES11.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES11.All* attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_map_buffer_range]
             /// Indicate modifications to a range of a mapped buffer
@@ -8322,7 +8322,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8331,7 +8331,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8340,7 +8340,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8349,7 +8349,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8358,7 +8358,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8367,7 +8367,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8376,7 +8376,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8385,7 +8385,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8394,7 +8394,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8403,7 +8403,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8412,7 +8412,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -8421,7 +8421,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_map_buffer_range]
             /// Map a section of a buffer object's data store
@@ -8505,10 +8505,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8517,7 +8517,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -8525,10 +8525,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8537,7 +8537,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -8545,10 +8545,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8557,7 +8557,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -8565,10 +8565,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8576,7 +8576,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -8584,10 +8584,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8595,7 +8595,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -8603,10 +8603,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -8614,7 +8614,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -8622,13 +8622,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8637,7 +8637,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES11.All mode, Int32[] count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -8645,13 +8645,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8660,7 +8660,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8670,13 +8670,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8685,7 +8685,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8695,13 +8695,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8710,7 +8710,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8720,13 +8720,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8735,7 +8735,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8745,13 +8745,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8760,7 +8760,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES11.All mode, ref Int32 count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -8768,13 +8768,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8783,7 +8783,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8793,13 +8793,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8808,7 +8808,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8818,13 +8818,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8833,7 +8833,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8843,13 +8843,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8858,7 +8858,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8868,13 +8868,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8883,7 +8883,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES11.All mode, Int32* count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -8891,13 +8891,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8906,7 +8906,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8916,13 +8916,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8931,7 +8931,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8941,13 +8941,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8956,7 +8956,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8966,13 +8966,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -8981,7 +8981,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -8991,13 +8991,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9005,7 +9005,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -9013,13 +9013,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9027,7 +9027,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9037,13 +9037,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9051,7 +9051,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9061,13 +9061,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9075,7 +9075,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9085,13 +9085,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9099,7 +9099,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9109,13 +9109,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9123,7 +9123,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -9131,13 +9131,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9145,7 +9145,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9155,13 +9155,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9169,7 +9169,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9179,13 +9179,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9193,7 +9193,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9203,13 +9203,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9217,7 +9217,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9227,13 +9227,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9241,7 +9241,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES11.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -9249,13 +9249,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9263,7 +9263,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9273,13 +9273,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9287,7 +9287,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9297,13 +9297,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9311,7 +9311,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9321,13 +9321,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -9335,7 +9335,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES11.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES11.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9349,7 +9349,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -9362,7 +9362,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9377,7 +9377,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9392,7 +9392,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9406,7 +9406,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES11.All format, OpenTK.Graphics.ES11.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9575,7 +9575,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanefIMG")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.ES11.All p, Single[] eqn) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Single[] eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_user_clip_plane]
             /// Specify a plane against which all geometry is clipped
@@ -9588,7 +9588,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanefIMG")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.ES11.All p, ref Single eqn) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] ref Single eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_user_clip_plane]
             /// Specify a plane against which all geometry is clipped
@@ -9601,28 +9601,28 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanefIMG")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All p, Single* eqn) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Single* eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_user_clip_plane]</summary>
             /// <param name="p"></param>
             /// <param name="eqn">[length: 4]</param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanexIMG")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.ES11.All p, Int32[] eqn) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Int32[] eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_user_clip_plane]</summary>
             /// <param name="p"></param>
             /// <param name="eqn">[length: 4]</param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanexIMG")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.ES11.All p, ref Int32 eqn) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] ref Int32 eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_user_clip_plane]</summary>
             /// <param name="p"></param>
             /// <param name="eqn">[length: 4]</param>
             [AutoGenerated(Category = "IMG_user_clip_plane", Version = "", EntryPoint = "glClipPlanexIMG")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All p, Int32* eqn) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All p, [CountAttribute(Count = 4)] Int32* eqn) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IMG_multisampled_render_to_texture]</summary>
             /// <param name="target"></param>
@@ -9675,55 +9675,55 @@ namespace OpenTK.Graphics.ES11
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
@@ -9747,90 +9747,90 @@ namespace OpenTK.Graphics.ES11
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
@@ -9965,10 +9965,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte[] bitmap) { throw new NotImplementedException(); }
+            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte[] bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -9977,10 +9977,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, ref Byte bitmap) { throw new NotImplementedException(); }
+            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] ref Byte bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -9989,10 +9989,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static unsafe void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte* bitmap) { throw new NotImplementedException(); }
+            public static unsafe void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -10091,7 +10091,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.ES11.All plane, Single[] equation) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Single[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify a plane against which all geometry is clipped
@@ -10104,7 +10104,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.ES11.All plane, ref Single equation) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] ref Single equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify a plane against which all geometry is clipped
@@ -10117,28 +10117,28 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All plane, Single* equation) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlane(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Single* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, Int32[] equation) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, ref Int32 equation) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] ref Int32 equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All plane, Int32* equation) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlanex(OpenTK.Graphics.ES11.All plane, [CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -10151,19 +10151,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static void Color3x(Int32[] components) { throw new NotImplementedException(); }
+            public static void Color3x([CountAttribute(Count = 3)] Int32[] components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static void Color3x(ref Int32 components) { throw new NotImplementedException(); }
+            public static void Color3x([CountAttribute(Count = 3)] ref Int32 components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Color3x(Int32* components) { throw new NotImplementedException(); }
+            public static unsafe void Color3x([CountAttribute(Count = 3)] Int32* components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -10177,19 +10177,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static void Color4x(Int32[] components) { throw new NotImplementedException(); }
+            public static void Color4x([CountAttribute(Count = 4)] Int32[] components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static void Color4x(ref Int32 components) { throw new NotImplementedException(); }
+            public static void Color4x([CountAttribute(Count = 4)] ref Int32 components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Color4x(Int32* components) { throw new NotImplementedException(); }
+            public static unsafe void Color4x([CountAttribute(Count = 4)] Int32* components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -10201,18 +10201,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             /// <param name="matrixpaletteindex"></param>
@@ -10234,7 +10234,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10244,7 +10244,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10257,7 +10257,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10270,7 +10270,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10283,7 +10283,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10296,7 +10296,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10309,7 +10309,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named framebuffer objects
@@ -10322,7 +10322,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10332,7 +10332,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10342,7 +10342,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10355,7 +10355,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10368,7 +10368,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10381,7 +10381,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10394,7 +10394,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10407,7 +10407,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Delete named renderbuffer objects
@@ -10420,7 +10420,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10430,7 +10430,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10440,7 +10440,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10453,7 +10453,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10466,7 +10466,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10479,7 +10479,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10492,7 +10492,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10505,7 +10505,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -10518,7 +10518,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify mapping of depth values from normalized device coordinates to window coordinates
@@ -10667,7 +10667,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void EvalCoord1x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void EvalCoord1x([CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="u"></param>
@@ -10679,19 +10679,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void EvalCoord2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void EvalCoord2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void EvalCoord2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void EvalCoord2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void EvalCoord2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void EvalCoord2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -10699,7 +10699,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, Int32[] buffer) { throw new NotImplementedException(); }
+            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, [CountAttribute(Parameter = "n")] Int32[] buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -10707,7 +10707,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, ref Int32 buffer) { throw new NotImplementedException(); }
+            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, [CountAttribute(Parameter = "n")] ref Int32 buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -10715,7 +10715,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static unsafe void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, Int32* buffer) { throw new NotImplementedException(); }
+            public static unsafe void FeedbackBufferx(Int32 n, OpenTK.Graphics.ES11.All type, [CountAttribute(Parameter = "n")] Int32* buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
@@ -10725,17 +10725,17 @@ namespace OpenTK.Graphics.ES11
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFogxvOES")]
             [CLSCompliant(false)]
-            public static void Fogx(OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void Fogx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFogxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Fogx(OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void Fogx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Attach a renderbuffer object to a framebuffer object
@@ -10880,7 +10880,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate framebuffer object names
@@ -10893,7 +10893,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate framebuffer object names
@@ -10906,7 +10906,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate framebuffer object names
@@ -10919,7 +10919,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate framebuffer object names
@@ -10932,7 +10932,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate framebuffer object names
@@ -10945,7 +10945,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -10965,7 +10965,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -10978,7 +10978,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -10991,7 +10991,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -11004,7 +11004,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -11017,7 +11017,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Generate renderbuffer object names
@@ -11030,7 +11030,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11050,7 +11050,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11063,7 +11063,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11076,7 +11076,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11089,7 +11089,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11102,7 +11102,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -11115,7 +11115,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_mapbuffer]</summary>
             /// <param name="target"></param>
@@ -11174,7 +11174,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] Single[] equation) { throw new NotImplementedException(); }
+            public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Single[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Return the coefficients of the specified clipping plane
@@ -11187,7 +11187,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] out Single equation) { throw new NotImplementedException(); }
+            public static void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] out Single equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Return the coefficients of the specified clipping plane
@@ -11200,52 +11200,52 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute] Single* equation) { throw new NotImplementedException(); }
+            public static unsafe void GetClipPlane(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] Int32[] equation) { throw new NotImplementedException(); }
+            public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] out Int32 equation) { throw new NotImplementedException(); }
+            public static void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] out Int32 equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute] Int32* equation) { throw new NotImplementedException(); }
+            public static unsafe void GetClipPlanex(OpenTK.Graphics.ES11.All plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
@@ -11255,24 +11255,24 @@ namespace OpenTK.Graphics.ES11
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFixed(OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -11286,12 +11286,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivOES")]
             [CLSCompliant(false)]
-            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -11305,12 +11305,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivOES")]
             [CLSCompliant(false)]
-            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -11324,84 +11324,84 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All attachment, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetLightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute] Int32[] v) { throw new NotImplementedException(); }
+            public static void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute, CountAttribute(Computed = "query")] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute] out Int32 v) { throw new NotImplementedException(); }
+            public static void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute, CountAttribute(Computed = "query")] out Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute] Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void GetMapx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All query, [OutAttribute, CountAttribute(Computed = "query")] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
@@ -11413,18 +11413,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMaterialxvOES")]
             [CLSCompliant(false)]
-            public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMaterialxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMaterialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -11435,12 +11435,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivOES")]
             [CLSCompliant(false)]
-            public static void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -11451,12 +11451,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivOES")]
             [CLSCompliant(false)]
-            public static void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -11467,36 +11467,36 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "OES_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11507,12 +11507,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenfvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11523,12 +11523,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenfvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11539,12 +11539,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenfvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11555,12 +11555,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenivOES")]
             [CLSCompliant(false)]
-            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11571,12 +11571,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenivOES")]
             [CLSCompliant(false)]
-            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Return texture coordinate generation parameters
@@ -11587,87 +11587,87 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested data.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenivOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point|OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point|OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point|OES_texture_cube_map", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexLevelParameterx(OpenTK.Graphics.ES11.All target, Int32 level, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="component"></param>
@@ -11678,7 +11678,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="component">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glIndexxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Indexx(Int32* component) { throw new NotImplementedException(); }
+            public static unsafe void Indexx([CountAttribute(Count = 1)] Int32* component) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Determine if a name corresponds to a framebuffer object
@@ -11748,17 +11748,17 @@ namespace OpenTK.Graphics.ES11
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightModelxvOES")]
             [CLSCompliant(false)]
-            public static void LightModelx(OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void LightModelx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightModelxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void LightModelx(OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void LightModelx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
@@ -11770,18 +11770,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightxvOES")]
             [CLSCompliant(false)]
-            public static void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void Lightx(OpenTK.Graphics.ES11.All light, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -11792,19 +11792,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void LoadMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void LoadMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void LoadMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glLoadPaletteFromModelViewMatrixOES")]
@@ -11814,19 +11814,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void LoadTransposeMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadTransposeMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -11890,35 +11890,35 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMaterialxvOES")]
             [CLSCompliant(false)]
-            public static void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMaterialxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void Materialx(OpenTK.Graphics.ES11.All face, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerOES")]
-            public static void MatrixIndexPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void MatrixIndexPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerOES")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11926,10 +11926,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerOES")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11937,10 +11937,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerOES")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11948,9 +11948,9 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerOES")]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11991,7 +11991,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.ES11.All texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 1)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12004,7 +12004,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.ES11.All texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 1)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -12017,7 +12017,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1x(OpenTK.Graphics.ES11.All texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12062,7 +12062,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12075,7 +12075,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12088,7 +12088,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12101,7 +12101,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12114,7 +12114,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12127,7 +12127,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -12141,21 +12141,21 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12206,7 +12206,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12219,7 +12219,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12232,7 +12232,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12245,7 +12245,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12258,7 +12258,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12271,7 +12271,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -12286,21 +12286,21 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12357,7 +12357,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12370,7 +12370,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12383,7 +12383,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12396,7 +12396,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12409,7 +12409,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12422,7 +12422,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -12438,57 +12438,57 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4x(OpenTK.Graphics.ES11.All texture, [CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void MultMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void MultMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void MultMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultTransposeMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void MultTransposeMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="nx"></param>
@@ -12501,19 +12501,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static void Normal3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Normal3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static void Normal3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Normal3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Normal3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Normal3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Multiply the current matrix with an orthographic matrix
@@ -12574,61 +12574,61 @@ namespace OpenTK.Graphics.ES11
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPointParameterxvOES")]
             [CLSCompliant(false)]
-            public static void PointParameterx(OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void PointParameterx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPointParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameterx(OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameterx(OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_point_size_array]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_point_size_array", Version = "", EntryPoint = "glPointSizePointerOES")]
-            public static void PointSizePointer(OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void PointSizePointer(OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_point_size_array]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_point_size_array", Version = "", EntryPoint = "glPointSizePointerOES")]
             [CLSCompliant(false)]
-            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_point_size_array]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_point_size_array", Version = "", EntryPoint = "glPointSizePointerOES")]
             [CLSCompliant(false)]
-            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_point_size_array]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_point_size_array", Version = "", EntryPoint = "glPointSizePointerOES")]
             [CLSCompliant(false)]
-            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_point_size_array]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_point_size_array", Version = "", EntryPoint = "glPointSizePointerOES")]
-            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void PointSizePointer<T2>(OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12649,7 +12649,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, Int32[] textures, Int32[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [CountAttribute(Parameter = "n")] Int32[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -12657,7 +12657,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, ref Int32 textures, ref Int32 priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [CountAttribute(Parameter = "n")] ref Int32 priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -12665,7 +12665,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTexturesx(Int32 n, Int32* textures, Int32* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [CountAttribute(Parameter = "n")] Int32* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -12673,7 +12673,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, UInt32[] textures, Int32[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [CountAttribute(Parameter = "n")] Int32[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -12681,7 +12681,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, ref UInt32 textures, ref Int32 priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [CountAttribute(Parameter = "n")] ref Int32 priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -12689,28 +12689,28 @@ namespace OpenTK.Graphics.ES11
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTexturesx(Int32 n, UInt32* textures, Int32* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Int32* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static Int32 QueryMatrixx([OutAttribute] Int32[] mantissa, [OutAttribute] Int32[] exponent) { throw new NotImplementedException(); }
+            public static Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] Int32[] mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32[] exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static Int32 QueryMatrixx([OutAttribute] out Int32 mantissa, [OutAttribute] out Int32 exponent) { throw new NotImplementedException(); }
+            public static Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] out Int32 mantissa, [OutAttribute, CountAttribute(Count = 16)] out Int32 exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe Int32 QueryMatrixx([OutAttribute] Int32* mantissa, [OutAttribute] Int32* exponent) { throw new NotImplementedException(); }
+            public static unsafe Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] Int32* mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32* exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -12722,19 +12722,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -12747,19 +12747,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -12773,19 +12773,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x1"></param>
@@ -12800,21 +12800,21 @@ namespace OpenTK.Graphics.ES11
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static void Rectx(Int32[] v1, Int32[] v2) { throw new NotImplementedException(); }
+            public static void Rectx([CountAttribute(Count = 2)] Int32[] v1, [CountAttribute(Count = 2)] Int32[] v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="v1">[length: 2]</param>
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static void Rectx(ref Int32 v1, ref Int32 v2) { throw new NotImplementedException(); }
+            public static void Rectx([CountAttribute(Count = 2)] ref Int32 v1, [CountAttribute(Count = 2)] ref Int32 v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="v1">[length: 2]</param>
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Rectx(Int32* v1, Int32* v2) { throw new NotImplementedException(); }
+            public static unsafe void Rectx([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_framebuffer_object]
             /// Create and initialize a renderbuffer object's data store
@@ -12895,7 +12895,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1([CountAttribute(Count = 1)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12905,7 +12905,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1([CountAttribute(Count = 1)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -12916,7 +12916,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1x([CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12952,7 +12952,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12962,7 +12962,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12972,7 +12972,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2([CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12982,7 +12982,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -12992,7 +12992,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13002,7 +13002,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2([CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -13014,19 +13014,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13068,7 +13068,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13078,7 +13078,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13088,7 +13088,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3([CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13098,7 +13098,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13108,7 +13108,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13118,7 +13118,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3([CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -13131,19 +13131,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13191,7 +13191,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13201,7 +13201,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13211,7 +13211,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4([CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13221,7 +13221,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13231,7 +13231,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -13241,7 +13241,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4([CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -13255,19 +13255,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -13279,18 +13279,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexEnvx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Control the generation of texture coordinates
@@ -13316,12 +13316,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glTexGenfvOES")]
             [CLSCompliant(false)]
-            public static void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Control the generation of texture coordinates
@@ -13332,12 +13332,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glTexGenfvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Control the generation of texture coordinates
@@ -13363,12 +13363,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glTexGenivOES")]
             [CLSCompliant(false)]
-            public static void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_cube_map]
             /// Control the generation of texture coordinates
@@ -13379,12 +13379,12 @@ namespace OpenTK.Graphics.ES11
             /// <param name="pname">
             /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
             /// </param>
             [AutoGenerated(Category = "OES_texture_cube_map", Version = "", EntryPoint = "glTexGenivOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexGen(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
@@ -13396,18 +13396,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point|OES_texture_cube_map", Version = "", EntryPoint = "glTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void TexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point|OES_texture_cube_map]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point|OES_texture_cube_map", Version = "", EntryPoint = "glTexGenxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexGenx(OpenTK.Graphics.ES11.All coord, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -13419,18 +13419,18 @@ namespace OpenTK.Graphics.ES11
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterx(OpenTK.Graphics.ES11.All target, OpenTK.Graphics.ES11.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -13478,7 +13478,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13488,7 +13488,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13498,7 +13498,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2([CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13508,7 +13508,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13518,7 +13518,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13528,7 +13528,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2([CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -13539,13 +13539,13 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex2xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13587,7 +13587,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13597,7 +13597,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13607,7 +13607,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3([CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13617,7 +13617,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13627,7 +13627,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13637,7 +13637,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3([CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -13649,19 +13649,19 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Vertex3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13709,7 +13709,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13719,7 +13719,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13729,7 +13729,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4([CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13739,7 +13739,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13749,7 +13749,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -13759,7 +13759,7 @@ namespace OpenTK.Graphics.ES11
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4([CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -13772,36 +13772,36 @@ namespace OpenTK.Graphics.ES11
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Vertex4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glWeightPointerOES")]
-            public static void WeightPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void WeightPointer(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glWeightPointerOES")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -13809,10 +13809,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glWeightPointerOES")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -13820,10 +13820,10 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glWeightPointerOES")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -13831,9 +13831,9 @@ namespace OpenTK.Graphics.ES11
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "OES_matrix_palette", Version = "", EntryPoint = "glWeightPointerOES")]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.ES11.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -13925,7 +13925,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13933,7 +13933,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13942,7 +13942,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out Int32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out Int32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13951,7 +13951,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] Int32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13960,7 +13960,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13968,7 +13968,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13977,7 +13977,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out UInt32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out UInt32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -13986,7 +13986,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -13995,7 +13995,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14003,7 +14003,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14012,7 +14012,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14021,7 +14021,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14030,7 +14030,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14038,7 +14038,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14047,7 +14047,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -14056,7 +14056,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="program"></param>
@@ -14119,7 +14119,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14127,7 +14127,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14136,7 +14136,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out Int32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out Int32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14145,7 +14145,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] Int32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14154,7 +14154,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14162,7 +14162,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14171,7 +14171,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out UInt32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out UInt32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -14180,7 +14180,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14189,7 +14189,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14197,7 +14197,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14206,7 +14206,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14215,7 +14215,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14224,7 +14224,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14232,7 +14232,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14241,7 +14241,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -14250,7 +14250,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14259,7 +14259,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14267,7 +14267,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14276,7 +14276,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out Int32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out Int32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14285,7 +14285,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] Int32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14294,7 +14294,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14302,7 +14302,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14311,7 +14311,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out UInt32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out UInt32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -14320,7 +14320,7 @@ namespace OpenTK.Graphics.ES11
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="texture"></param>
@@ -14541,7 +14541,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] Int32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -14549,7 +14549,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] UInt32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -14557,7 +14557,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out Int32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -14565,7 +14565,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out UInt32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out UInt32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -14573,7 +14573,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] Int32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -14581,7 +14581,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14590,7 +14590,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14599,7 +14599,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14608,7 +14608,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14617,7 +14617,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14626,7 +14626,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -14635,7 +14635,7 @@ namespace OpenTK.Graphics.ES11
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_tiled_rendering]</summary>
             /// <param name="x"></param>
@@ -14676,7 +14676,7 @@ namespace OpenTK.Graphics.ES11
         private static extern unsafe void glGetInteger64vAPPLE(System.Int32 pname, [OutAttribute] Int64* @params);
         [Slot(168)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(189)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsSyncAPPLE(IntPtr sync);
@@ -14709,10 +14709,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glBlendFunc(System.Int32 sfactor, System.Int32 dfactor);
         [Slot(17)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(18)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(20)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClear(System.Int32 mask);
@@ -14736,10 +14736,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glClientActiveTexture(System.Int32 texture);
         [Slot(32)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanef(System.Int32 p, Single* eqn);
+        private static extern unsafe void glClipPlanef(System.Int32 p, [CountAttribute(Count = 4)] Single* eqn);
         [Slot(35)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanex(System.Int32 plane, Int32* equation);
+        private static extern unsafe void glClipPlanex(System.Int32 plane, [CountAttribute(Count = 4)] Int32* equation);
         [Slot(40)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4f(Single red, Single green, Single blue, Single alpha);
@@ -14754,13 +14754,13 @@ namespace OpenTK.Graphics.ES11
         private static extern void glColorMask(bool red, bool green, bool blue, bool alpha);
         [Slot(46)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glColorPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(47)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(48)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(51)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border);
@@ -14772,10 +14772,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glCullFace(System.Int32 mode);
         [Slot(56)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(61)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(63)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -14799,7 +14799,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glDrawArrays(System.Int32 mode, Int32 first, Int32 count);
         [Slot(74)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(85)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnable(System.Int32 cap);
@@ -14817,13 +14817,13 @@ namespace OpenTK.Graphics.ES11
         private static extern void glFogf(System.Int32 pname, Single param);
         [Slot(112)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glFogfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(113)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogx(System.Int32 pname, Int32 param);
         [Slot(115)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogxv(System.Int32 pname, Int32* param);
+        private static extern unsafe void glFogxv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(121)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFrontFace(System.Int32 mode);
@@ -14835,22 +14835,22 @@ namespace OpenTK.Graphics.ES11
         private static extern void glFrustumx(Int32 l, Int32 r, Int32 b, Int32 t, Int32 n, Int32 f);
         [Slot(126)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(131)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(133)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(136)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanef(System.Int32 plane, [OutAttribute] Single* equation);
+        private static extern unsafe void glGetClipPlanef(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanex(System.Int32 plane, [OutAttribute] Int32* equation);
+        private static extern unsafe void glGetClipPlanex(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation);
         [Slot(143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
@@ -14859,49 +14859,49 @@ namespace OpenTK.Graphics.ES11
         private static extern unsafe void glGetFixedv(System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(152)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightfv(System.Int32 light, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetLightfv(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(155)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightxv(System.Int32 light, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetLightxv(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(158)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialfv(System.Int32 face, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMaterialfv(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(160)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialxv(System.Int32 face, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMaterialxv(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(164)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelMapxv(System.Int32 map, Int32 size, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetPixelMapxv(System.Int32 map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* values);
         [Slot(165)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(167)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
         [Slot(169)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnvfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexEnvfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(170)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnviv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexEnviv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(171)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnvxv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexEnvxv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterxv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterxv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(181)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
@@ -14919,25 +14919,25 @@ namespace OpenTK.Graphics.ES11
         private static extern void glLightf(System.Int32 light, System.Int32 pname, Single param);
         [Slot(193)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightfv(System.Int32 light, System.Int32 pname, Single* @params);
+        private static extern unsafe void glLightfv(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(194)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightModelf(System.Int32 pname, Single param);
         [Slot(195)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModelfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glLightModelfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(196)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightModelx(System.Int32 pname, Int32 param);
         [Slot(198)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModelxv(System.Int32 pname, Int32* param);
+        private static extern unsafe void glLightModelxv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightx(System.Int32 light, System.Int32 pname, Int32 param);
         [Slot(202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightxv(System.Int32 light, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glLightxv(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLineWidth(Single width);
@@ -14949,10 +14949,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glLoadIdentity();
         [Slot(208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixf(Single* m);
+        private static extern unsafe void glLoadMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixx(Int32* m);
+        private static extern unsafe void glLoadMatrixx([CountAttribute(Count = 16)] Int32* m);
         [Slot(213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLogicOp(System.Int32 opcode);
@@ -14961,13 +14961,13 @@ namespace OpenTK.Graphics.ES11
         private static extern void glMaterialf(System.Int32 face, System.Int32 pname, Single param);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialfv(System.Int32 face, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMaterialfv(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMaterialx(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(224)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialxv(System.Int32 face, System.Int32 pname, Int32* param);
+        private static extern unsafe void glMaterialxv(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMatrixMode(System.Int32 mode);
@@ -14979,10 +14979,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glMultiTexCoord4x(System.Int32 texture, Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixf(Single* m);
+        private static extern unsafe void glMultMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixx(Int32* m);
+        private static extern unsafe void glMultMatrixx([CountAttribute(Count = 16)] Int32* m);
         [Slot(252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3f(Single nx, Single ny, Single nz);
@@ -14991,7 +14991,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glNormal3x(Int32 nx, Int32 ny, Int32 nz);
         [Slot(256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNormalPointer(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glNormalPointer(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glOrthof(Single l, Single r, Single b, Single t, Single n, Single f);
@@ -15000,7 +15000,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glOrthox(Int32 l, Int32 r, Int32 b, Int32 t, Int32 n, Int32 f);
         [Slot(262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelMapx(System.Int32 map, Int32 size, Int32* values);
+        private static extern unsafe void glPixelMapx(System.Int32 map, Int32 size, [CountAttribute(Parameter = "size")] Int32* values);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelStorei(System.Int32 pname, Int32 param);
@@ -15012,13 +15012,13 @@ namespace OpenTK.Graphics.ES11
         private static extern void glPointParameterf(System.Int32 pname, Single param);
         [Slot(268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameterx(System.Int32 pname, Int32 param);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterxv(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameterxv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointSize(Single size);
@@ -15039,7 +15039,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glPushMatrix();
         [Slot(291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRotatef(Single angle, Single x, Single y, Single z);
@@ -15075,49 +15075,49 @@ namespace OpenTK.Graphics.ES11
         private static extern void glStencilOp(System.Int32 fail, System.Int32 zfail, System.Int32 zpass);
         [Slot(333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexCoordPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glTexCoordPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(334)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(335)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnvfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexEnvfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvi(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(337)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnviv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexEnviv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvx(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnvxv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexEnvxv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(352)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(353)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterx(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(355)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterxv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterxv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTranslatef(Single x, Single y, Single z);
@@ -15126,7 +15126,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glTranslatex(Int32 x, Int32 y, Int32 z);
         [Slot(380)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewport(Int32 x, Int32 y, Int32 width, Int32 height);
@@ -15135,7 +15135,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glBlendEquationEXT(System.Int32 mode);
         [Slot(72)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(110)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFlushMappedBufferRangeEXT(System.Int32 target, IntPtr offset, IntPtr length);
@@ -15147,22 +15147,22 @@ namespace OpenTK.Graphics.ES11
         private static extern System.Int32 glGetGraphicsResetStatusEXT();
         [Slot(162)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(163)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glMapBufferRangeEXT(System.Int32 target, IntPtr offset, IntPtr length, UInt32 access);
         [Slot(228)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount);
         [Slot(229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount);
         [Slot(290)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleEXT(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
@@ -15186,10 +15186,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glTextureStorage3DEXT(UInt32 texture, System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth);
         [Slot(33)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanefIMG(System.Int32 p, Single* eqn);
+        private static extern unsafe void glClipPlanefIMG(System.Int32 p, [CountAttribute(Count = 4)] Single* eqn);
         [Slot(36)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanexIMG(System.Int32 p, Int32* eqn);
+        private static extern unsafe void glClipPlanexIMG(System.Int32 p, [CountAttribute(Count = 4)] Int32* eqn);
         [Slot(119)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFramebufferTexture2DMultisampleIMG(System.Int32 target, System.Int32 attachment, System.Int32 textarget, UInt32 texture, Int32 level, Int32 samples);
@@ -15198,16 +15198,16 @@ namespace OpenTK.Graphics.ES11
         private static extern void glRenderbufferStorageMultisampleIMG(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(57)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesNV(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(108)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinishFenceNV(UInt32 fence);
         [Slot(128)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(144)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(186)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFenceNV(UInt32 fence);
@@ -15234,7 +15234,7 @@ namespace OpenTK.Graphics.ES11
         private static extern void glBindVertexArrayOES(UInt32 array);
         [Slot(10)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBitmapxOES(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte* bitmap);
+        private static extern unsafe void glBitmapxOES(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap);
         [Slot(11)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendColorxOES(Int32 red, Int32 green, Int32 blue, Int32 alpha);
@@ -15264,40 +15264,40 @@ namespace OpenTK.Graphics.ES11
         private static extern void glClearDepthxOES(Int32 depth);
         [Slot(34)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanefOES(System.Int32 plane, Single* equation);
+        private static extern unsafe void glClipPlanefOES(System.Int32 plane, [CountAttribute(Count = 4)] Single* equation);
         [Slot(37)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanexOES(System.Int32 plane, Int32* equation);
+        private static extern unsafe void glClipPlanexOES(System.Int32 plane, [CountAttribute(Count = 4)] Int32* equation);
         [Slot(38)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3xOES(Int32 red, Int32 green, Int32 blue);
         [Slot(39)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3xvOES(Int32* components);
+        private static extern unsafe void glColor3xvOES([CountAttribute(Count = 3)] Int32* components);
         [Slot(43)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4xOES(Int32 red, Int32 green, Int32 blue, Int32 alpha);
         [Slot(44)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4xvOES(Int32* components);
+        private static extern unsafe void glColor4xvOES([CountAttribute(Count = 4)] Int32* components);
         [Slot(49)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameterxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(50)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(55)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCurrentPaletteMatrixOES(UInt32 matrixpaletteindex);
         [Slot(58)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffersOES(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffersOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(59)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffersOES(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffersOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(62)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(66)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthRangefOES(Single n, Single f);
@@ -15339,22 +15339,22 @@ namespace OpenTK.Graphics.ES11
         private static extern void glEvalCoord1xOES(Int32 u);
         [Slot(90)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord1xvOES(Int32* coords);
+        private static extern unsafe void glEvalCoord1xvOES([CountAttribute(Count = 1)] Int32* coords);
         [Slot(91)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalCoord2xOES(Int32 u, Int32 v);
         [Slot(92)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord2xvOES(Int32* coords);
+        private static extern unsafe void glEvalCoord2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(105)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFeedbackBufferxOES(Int32 n, System.Int32 type, Int32* buffer);
+        private static extern unsafe void glFeedbackBufferxOES(Int32 n, System.Int32 type, [CountAttribute(Parameter = "n")] Int32* buffer);
         [Slot(114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogxOES(System.Int32 pname, Int32 param);
         [Slot(116)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogxvOES(System.Int32 pname, Int32* param);
+        private static extern unsafe void glFogxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(117)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFramebufferRenderbufferOES(System.Int32 target, System.Int32 attachment, System.Int32 renderbuffertarget, UInt32 renderbuffer);
@@ -15372,73 +15372,73 @@ namespace OpenTK.Graphics.ES11
         private static extern void glGenerateMipmapOES(System.Int32 target);
         [Slot(129)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffersOES(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffersOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(130)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffersOES(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffersOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetBufferPointervOES(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
         [Slot(137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanefOES(System.Int32 plane, [OutAttribute] Single* equation);
+        private static extern unsafe void glGetClipPlanefOES(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation);
         [Slot(139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanexOES(System.Int32 plane, [OutAttribute] Int32* equation);
+        private static extern unsafe void glGetClipPlanexOES(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(146)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFixedvOES(System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFixedvOES(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(148)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameterivOES(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameterivOES(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(150)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetHistogramParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(154)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightxOES(System.Int32 light, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetLightxOES(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(157)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapxvOES(System.Int32 target, System.Int32 query, [OutAttribute] Int32* v);
+        private static extern unsafe void glGetMapxvOES(System.Int32 target, System.Int32 query, [OutAttribute, CountAttribute(Computed = "query")] Int32* v);
         [Slot(159)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetMaterialxOES(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(161)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialxvOES(System.Int32 face, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMaterialxvOES(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(166)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameterivOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameterivOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(172)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnvxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexEnvxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGenfvOES(System.Int32 coord, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexGenfvOES(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGenivOES(System.Int32 coord, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexGenivOES(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGenxvOES(System.Int32 coord, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexGenxvOES(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameterxvOES(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexLevelParameterxvOES(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(180)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(182)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexxOES(Int32 component);
         [Slot(183)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexxvOES(Int32* component);
+        private static extern unsafe void glIndexxvOES([CountAttribute(Count = 1)] Int32* component);
         [Slot(187)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFramebufferOES(UInt32 framebuffer);
@@ -15453,25 +15453,25 @@ namespace OpenTK.Graphics.ES11
         private static extern void glLightModelxOES(System.Int32 pname, Int32 param);
         [Slot(199)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModelxvOES(System.Int32 pname, Int32* param);
+        private static extern unsafe void glLightModelxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(201)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightxOES(System.Int32 light, System.Int32 pname, Int32 param);
         [Slot(203)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightxvOES(System.Int32 light, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glLightxvOES(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLineWidthxOES(Int32 width);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixxOES(Int32* m);
+        private static extern unsafe void glLoadMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLoadPaletteFromModelViewMatrixOES();
         [Slot(212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixxOES(Int32* m);
+        private static extern unsafe void glLoadTransposeMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMap1xOES(System.Int32 target, Int32 u1, Int32 u2, Int32 stride, Int32 order, Int32 points);
@@ -15492,70 +15492,70 @@ namespace OpenTK.Graphics.ES11
         private static extern void glMaterialxOES(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialxvOES(System.Int32 face, System.Int32 pname, Int32* param);
+        private static extern unsafe void glMaterialxvOES(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMatrixIndexPointerOES(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glMatrixIndexPointerOES(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(230)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1bOES(System.Int32 texture, SByte s);
         [Slot(231)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord1bvOES(System.Int32 texture, [CountAttribute(Count = 1)] SByte* coords);
         [Slot(232)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1xOES(System.Int32 texture, Int32 s);
         [Slot(233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord1xvOES(System.Int32 texture, [CountAttribute(Count = 1)] Int32* coords);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2bOES(System.Int32 texture, SByte s, SByte t);
         [Slot(235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord2bvOES(System.Int32 texture, [CountAttribute(Count = 2)] SByte* coords);
         [Slot(236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2xOES(System.Int32 texture, Int32 s, Int32 t);
         [Slot(237)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord2xvOES(System.Int32 texture, [CountAttribute(Count = 2)] Int32* coords);
         [Slot(238)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3bOES(System.Int32 texture, SByte s, SByte t, SByte r);
         [Slot(239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord3bvOES(System.Int32 texture, [CountAttribute(Count = 3)] SByte* coords);
         [Slot(240)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3xOES(System.Int32 texture, Int32 s, Int32 t, Int32 r);
         [Slot(241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord3xvOES(System.Int32 texture, [CountAttribute(Count = 3)] Int32* coords);
         [Slot(242)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4bOES(System.Int32 texture, SByte s, SByte t, SByte r, SByte q);
         [Slot(243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord4bvOES(System.Int32 texture, [CountAttribute(Count = 4)] SByte* coords);
         [Slot(246)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4xOES(System.Int32 texture, Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord4xvOES(System.Int32 texture, [CountAttribute(Count = 4)] Int32* coords);
         [Slot(250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixxOES(Int32* m);
+        private static extern unsafe void glMultMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixxOES(Int32* m);
+        private static extern unsafe void glMultTransposeMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3xOES(Int32 nx, Int32 ny, Int32 nz);
         [Slot(255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3xvOES(Int32* coords);
+        private static extern unsafe void glNormal3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glOrthofOES(Single l, Single r, Single b, Single t, Single n, Single f);
@@ -15576,10 +15576,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glPointParameterxOES(System.Int32 pname, Int32 param);
         [Slot(272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterxvOES(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameterxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPointSizePointerOES(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glPointSizePointerOES(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointSizexOES(Int32 size);
@@ -15588,34 +15588,34 @@ namespace OpenTK.Graphics.ES11
         private static extern void glPolygonOffsetxOES(Int32 factor, Int32 units);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPrioritizeTexturesxOES(Int32 n, UInt32* textures, Int32* priorities);
+        private static extern unsafe void glPrioritizeTexturesxOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Int32* priorities);
         [Slot(283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glQueryMatrixxOES([OutAttribute] Int32* mantissa, [OutAttribute] Int32* exponent);
+        private static extern unsafe Int32 glQueryMatrixxOES([OutAttribute, CountAttribute(Count = 16)] Int32* mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32* exponent);
         [Slot(284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos2xOES(Int32 x, Int32 y);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3xOES(Int32 x, Int32 y, Int32 z);
         [Slot(287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4xOES(Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(292)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRectxOES(Int32 x1, Int32 y1, Int32 x2, Int32 y2);
         [Slot(293)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectxvOES(Int32* v1, Int32* v2);
+        private static extern unsafe void glRectxvOES([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2);
         [Slot(297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageOES(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height);
@@ -15636,79 +15636,79 @@ namespace OpenTK.Graphics.ES11
         private static extern void glTexCoord1bOES(SByte s);
         [Slot(318)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord1bvOES([CountAttribute(Count = 1)] SByte* coords);
         [Slot(319)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord1xOES(Int32 s);
         [Slot(320)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord1xvOES([CountAttribute(Count = 1)] Int32* coords);
         [Slot(321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2bOES(SByte s, SByte t);
         [Slot(322)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord2bvOES([CountAttribute(Count = 2)] SByte* coords);
         [Slot(323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2xOES(Int32 s, Int32 t);
         [Slot(324)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(325)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3bOES(SByte s, SByte t, SByte r);
         [Slot(326)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord3bvOES([CountAttribute(Count = 3)] SByte* coords);
         [Slot(327)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3xOES(Int32 s, Int32 t, Int32 r);
         [Slot(328)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4bOES(SByte s, SByte t, SByte r, SByte q);
         [Slot(330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord4bvOES([CountAttribute(Count = 4)] SByte* coords);
         [Slot(331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4xOES(Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(339)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnvxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexEnvxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(342)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGenfOES(System.Int32 coord, System.Int32 pname, Single param);
         [Slot(343)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGenfvOES(System.Int32 coord, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexGenfvOES(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGeniOES(System.Int32 coord, System.Int32 pname, Int32 param);
         [Slot(345)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGenivOES(System.Int32 coord, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexGenivOES(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(346)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGenxOES(System.Int32 coord, System.Int32 pname, Int32 param);
         [Slot(347)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGenxvOES(System.Int32 coord, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexGenxvOES(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTranslatexOES(Int32 x, Int32 y, Int32 z);
@@ -15720,40 +15720,40 @@ namespace OpenTK.Graphics.ES11
         private static extern void glVertex2bOES(SByte x, SByte y);
         [Slot(369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2bvOES(SByte* coords);
+        private static extern unsafe void glVertex2bvOES([CountAttribute(Count = 2)] SByte* coords);
         [Slot(370)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex2xOES(Int32 x);
         [Slot(371)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2xvOES(Int32* coords);
+        private static extern unsafe void glVertex2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3bOES(SByte x, SByte y, SByte z);
         [Slot(373)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3bvOES(SByte* coords);
+        private static extern unsafe void glVertex3bvOES([CountAttribute(Count = 3)] SByte* coords);
         [Slot(374)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3xOES(Int32 x, Int32 y);
         [Slot(375)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3xvOES(Int32* coords);
+        private static extern unsafe void glVertex3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4bOES(SByte x, SByte y, SByte z, SByte w);
         [Slot(377)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4bvOES(SByte* coords);
+        private static extern unsafe void glVertex4bvOES([CountAttribute(Count = 4)] SByte* coords);
         [Slot(378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4xOES(Int32 x, Int32 y, Int32 z);
         [Slot(379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4xvOES(Int32* coords);
+        private static extern unsafe void glVertex4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glWeightPointerOES(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glWeightPointerOES(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(71)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDisableDriverControlQCOM(UInt32 driverControl);
@@ -15768,22 +15768,22 @@ namespace OpenTK.Graphics.ES11
         private static extern void glExtGetBufferPointervQCOM(System.Int32 target, [OutAttribute] IntPtr @params);
         [Slot(94)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers);
+        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers);
         [Slot(95)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers);
+        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetProgramBinarySourceQCOM(UInt32 program, System.Int32 shadertype, [OutAttribute] IntPtr source, [OutAttribute] Int32* length);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms);
+        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers);
+        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers);
         [Slot(99)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetShadersQCOM([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders);
+        private static extern unsafe void glExtGetShadersQCOM([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders);
         [Slot(100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetTexLevelParameterivQCOM(UInt32 texture, System.Int32 face, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -15801,10 +15801,10 @@ namespace OpenTK.Graphics.ES11
         private static extern void glExtTexObjectStateOverrideiQCOM(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls);
+        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls);
         [Slot(142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr driverControlString);
+        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr driverControlString);
         [Slot(312)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStartTilingQCOM(UInt32 x, UInt32 y, UInt32 width, UInt32 height, UInt32 preserveMask);
index d732cc7..894196b 100644 (file)
@@ -843,55 +843,55 @@ namespace OpenTK.Graphics.ES20
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, Int32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -915,42 +915,42 @@ namespace OpenTK.Graphics.ES20
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] Int32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out Int32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out UInt32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -960,7 +960,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] Int32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -970,7 +970,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] out Int32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out Int32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -980,7 +980,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] Int32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -990,7 +990,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] UInt32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1000,7 +1000,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] out UInt32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out UInt32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1010,25 +1010,25 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES20.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1036,10 +1036,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1047,10 +1047,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1058,10 +1058,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1069,19 +1069,19 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1089,10 +1089,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1100,10 +1100,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1111,10 +1111,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1126,7 +1126,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] Int32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1136,7 +1136,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out Int32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out Int32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1146,7 +1146,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] Int32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1156,7 +1156,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1166,7 +1166,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out UInt32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out UInt32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1176,7 +1176,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1186,7 +1186,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1196,7 +1196,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1206,7 +1206,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1216,7 +1216,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1224,7 +1224,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] Int32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1232,7 +1232,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out Int32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out Int32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1240,7 +1240,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] UInt32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1248,7 +1248,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out UInt32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out UInt32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1256,7 +1256,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] Int32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1264,7 +1264,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1273,7 +1273,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1282,7 +1282,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1291,7 +1291,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1300,7 +1300,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1310,7 +1310,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1320,7 +1320,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] out Int32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out Int32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1330,7 +1330,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32* counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1340,7 +1340,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1350,7 +1350,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] out UInt32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out UInt32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1360,7 +1360,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList) { throw new NotImplementedException(); }
 
         }
 
@@ -1488,7 +1488,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1496,7 +1496,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1510,7 +1510,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1519,7 +1519,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1535,7 +1535,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1544,7 +1544,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1560,7 +1560,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1569,7 +1569,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1585,7 +1585,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1593,7 +1593,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1609,14 +1609,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1630,7 +1630,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1638,7 +1638,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1654,7 +1654,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1662,7 +1662,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1678,7 +1678,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1686,7 +1686,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1702,14 +1702,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1721,7 +1721,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1731,7 +1731,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1741,7 +1741,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1751,7 +1751,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1761,7 +1761,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1771,7 +1771,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_framebuffer_multisample]
             /// Establish data storage, format, dimensions and sample count of a renderbuffer object's image
@@ -2043,7 +2043,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2066,7 +2066,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2089,7 +2089,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES20.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2111,7 +2111,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2133,7 +2133,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2155,7 +2155,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES20.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Determine if a name corresponds to a sync object
@@ -2715,7 +2715,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.All target, Int32 size, IntPtr data, OpenTK.Graphics.ES20.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.All target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -2735,7 +2735,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2757,7 +2757,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2779,7 +2779,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2800,7 +2800,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2821,7 +2821,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.All target, IntPtr size, IntPtr data, OpenTK.Graphics.ES20.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.All target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -2841,7 +2841,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2863,7 +2863,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2885,7 +2885,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2906,7 +2906,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2927,7 +2927,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.ES20.BufferUsage usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.BufferUsage usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -2945,7 +2945,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.ES20.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -2965,7 +2965,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -2986,7 +2986,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3008,7 +3008,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3029,7 +3029,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3051,7 +3051,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3072,7 +3072,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3093,7 +3093,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3113,7 +3113,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3134,7 +3134,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.ES20.BufferUsage usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.BufferUsage usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -3152,7 +3152,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.ES20.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES20.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Create and initialize a buffer object's data store
@@ -3172,7 +3172,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3193,7 +3193,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3215,7 +3215,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3236,7 +3236,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3258,7 +3258,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3279,7 +3279,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3300,7 +3300,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use BufferUsageHint overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.BufferUsage usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.BufferUsage usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3320,7 +3320,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StaticDraw, or DynamicDraw.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES20.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES20.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3341,7 +3341,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Update a subset of a buffer object's data store
@@ -3361,7 +3361,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3383,7 +3383,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3405,7 +3405,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3426,7 +3426,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3447,7 +3447,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Update a subset of a buffer object's data store
@@ -3467,7 +3467,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3489,7 +3489,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3511,7 +3511,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3532,7 +3532,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3552,7 +3552,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Update a subset of a buffer object's data store
@@ -3571,7 +3571,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3592,7 +3592,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3613,7 +3613,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3633,7 +3633,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3653,7 +3653,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Update a subset of a buffer object's data store
@@ -3672,7 +3672,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3693,7 +3693,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3714,7 +3714,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3734,7 +3734,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES20.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3879,7 +3879,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -3911,7 +3911,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -3945,7 +3945,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -3979,7 +3979,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4012,7 +4012,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4045,7 +4045,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -4077,7 +4077,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4111,7 +4111,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4145,7 +4145,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4178,7 +4178,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4210,7 +4210,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -4241,7 +4241,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4274,7 +4274,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4307,7 +4307,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4339,7 +4339,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4375,7 +4375,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -4410,7 +4410,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4447,7 +4447,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4484,7 +4484,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4520,7 +4520,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4556,7 +4556,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use TextureTarget2d and CompressedInternalFormat overloads instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -4591,7 +4591,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d and CompressedInternalFormat overloads instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4628,7 +4628,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d and CompressedInternalFormat overloads instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4665,7 +4665,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use TextureTarget2d and CompressedInternalFormat overloads instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4701,7 +4701,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use TextureTarget2d and CompressedInternalFormat overloads instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4736,7 +4736,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -4770,7 +4770,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4806,7 +4806,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4842,7 +4842,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4877,7 +4877,7 @@ namespace OpenTK.Graphics.ES20
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5204,7 +5204,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5230,7 +5230,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5256,7 +5256,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5282,7 +5282,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5308,7 +5308,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5334,7 +5334,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, OpenTK.Graphics.ES20.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5359,7 +5359,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5384,7 +5384,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5409,7 +5409,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5434,7 +5434,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5459,7 +5459,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5484,7 +5484,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES20.DebugSourceControl source, OpenTK.Graphics.ES20.DebugTypeControl type, OpenTK.Graphics.ES20.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5504,13 +5504,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, Int32 id, OpenTK.Graphics.ES20.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, Int32 id, OpenTK.Graphics.ES20.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5530,13 +5530,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, UInt32 id, OpenTK.Graphics.ES20.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES20.All source, OpenTK.Graphics.ES20.All type, UInt32 id, OpenTK.Graphics.ES20.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5556,12 +5556,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES20.DebugSourceExternal source, OpenTK.Graphics.ES20.DebugType type, Int32 id, OpenTK.Graphics.ES20.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES20.DebugSourceExternal source, OpenTK.Graphics.ES20.DebugType type, Int32 id, OpenTK.Graphics.ES20.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5581,12 +5581,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES20.DebugSourceExternal source, OpenTK.Graphics.ES20.DebugType type, UInt32 id, OpenTK.Graphics.ES20.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES20.DebugSourceExternal source, OpenTK.Graphics.ES20.DebugType type, UInt32 id, OpenTK.Graphics.ES20.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5596,7 +5596,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5606,7 +5606,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5619,7 +5619,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5632,7 +5632,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5645,7 +5645,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5658,7 +5658,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5671,7 +5671,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5684,7 +5684,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5694,7 +5694,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5704,7 +5704,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5717,7 +5717,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5730,7 +5730,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5743,7 +5743,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5756,7 +5756,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5769,7 +5769,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named framebuffer objects
@@ -5782,7 +5782,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete a program object
@@ -5812,7 +5812,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5822,7 +5822,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5835,7 +5835,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5848,7 +5848,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5861,7 +5861,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5874,7 +5874,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5887,7 +5887,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named renderbuffer objects
@@ -5900,7 +5900,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete a shader object
@@ -5930,7 +5930,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -5940,7 +5940,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -5953,7 +5953,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -5966,7 +5966,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -5979,7 +5979,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -5992,7 +5992,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6005,7 +6005,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6018,7 +6018,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value used for depth buffer comparisons
@@ -6168,12 +6168,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -6187,13 +6187,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6209,13 +6209,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6231,13 +6231,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6253,12 +6253,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6274,12 +6274,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -6293,13 +6293,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6315,13 +6315,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6337,13 +6337,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6359,12 +6359,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.BeginMode mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6380,11 +6380,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -6398,12 +6398,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6419,12 +6419,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6440,12 +6440,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6461,11 +6461,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be UnsignedByte or UnsignedShort.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6857,7 +6857,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -6870,7 +6870,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -6883,7 +6883,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -6896,7 +6896,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -6909,7 +6909,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -6922,7 +6922,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate a complete set of mipmaps for a texture object
@@ -6961,7 +6961,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -6974,7 +6974,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -6987,7 +6987,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -7000,7 +7000,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -7013,7 +7013,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -7026,7 +7026,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7046,7 +7046,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7059,7 +7059,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7072,7 +7072,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7085,7 +7085,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7098,7 +7098,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -7111,7 +7111,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7131,7 +7131,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7144,7 +7144,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7157,7 +7157,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7170,7 +7170,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7183,7 +7183,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -7196,7 +7196,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7224,7 +7224,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7253,7 +7253,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7281,7 +7281,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7310,7 +7310,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7338,7 +7338,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7367,7 +7367,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7395,7 +7395,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active attribute variable
@@ -7424,7 +7424,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7452,7 +7452,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7481,7 +7481,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7509,7 +7509,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7538,7 +7538,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7566,7 +7566,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7595,7 +7595,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES20.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7623,7 +7623,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return information about an active uniform variable
@@ -7652,7 +7652,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES20.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7671,7 +7671,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7690,7 +7690,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7709,7 +7709,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7728,7 +7728,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7747,7 +7747,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the handles of the shader objects attached to a program object
@@ -7766,7 +7766,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the location of an attribute variable
@@ -7809,48 +7809,48 @@ namespace OpenTK.Graphics.ES20
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7861,13 +7861,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7878,13 +7878,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7895,13 +7895,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7912,12 +7912,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7928,12 +7928,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -7944,12 +7944,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferSize or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES20.BufferTarget target, OpenTK.Graphics.ES20.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -7981,7 +7981,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All[] sources, [OutAttribute] OpenTK.Graphics.ES20.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES20.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8013,7 +8013,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.All sources, [OutAttribute] out OpenTK.Graphics.ES20.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES20.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8045,7 +8045,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All* sources, [OutAttribute] OpenTK.Graphics.ES20.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES20.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8076,7 +8076,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8107,7 +8107,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8138,7 +8138,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8170,7 +8170,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All[] sources, [OutAttribute] OpenTK.Graphics.ES20.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES20.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8202,7 +8202,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.All sources, [OutAttribute] out OpenTK.Graphics.ES20.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES20.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8234,7 +8234,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All* sources, [OutAttribute] OpenTK.Graphics.ES20.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES20.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8265,7 +8265,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8296,7 +8296,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -8327,7 +8327,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return error information
@@ -8350,48 +8350,48 @@ namespace OpenTK.Graphics.ES20
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8405,13 +8405,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8425,13 +8425,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8445,13 +8445,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8465,12 +8465,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8484,12 +8484,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8503,12 +8503,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.All attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8522,13 +8522,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use FramebufferAttachment overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8542,13 +8542,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use FramebufferAttachment overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return attachment parameters of a framebuffer object
@@ -8562,13 +8562,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a framebuffer object attachment parameter. Accepted values are FramebufferAttachmentObjectType, FramebufferAttachmentObjectName, FramebufferAttachmentTextureLevel, and FramebufferAttachmentTextureCubeMapFace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use FramebufferAttachment overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES20.FramebufferTarget target, OpenTK.Graphics.ES20.FramebufferSlot attachment, OpenTK.Graphics.ES20.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatus")]
@@ -8589,48 +8589,48 @@ namespace OpenTK.Graphics.ES20
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES20.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="program"></param>
@@ -8788,7 +8788,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8811,7 +8811,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8834,7 +8834,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8857,7 +8857,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8880,7 +8880,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8903,7 +8903,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8925,7 +8925,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8947,7 +8947,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8969,7 +8969,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -8991,7 +8991,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -9013,7 +9013,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -9035,7 +9035,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -9055,7 +9055,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -9075,7 +9075,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -9095,7 +9095,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -9115,7 +9115,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9137,7 +9137,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9159,7 +9159,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9181,7 +9181,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9203,7 +9203,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9225,7 +9225,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9247,7 +9247,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9269,7 +9269,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9291,7 +9291,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9313,7 +9313,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9335,7 +9335,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9357,7 +9357,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -9372,7 +9372,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES20.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -9386,7 +9386,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9402,7 +9402,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9418,7 +9418,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9433,7 +9433,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9447,7 +9447,7 @@ namespace OpenTK.Graphics.ES20
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES20.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES20.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -9460,7 +9460,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9475,7 +9475,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9490,7 +9490,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9504,7 +9504,7 @@ namespace OpenTK.Graphics.ES20
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES20.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -9525,7 +9525,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a program object
@@ -9544,7 +9544,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a program object
@@ -9563,7 +9563,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a program object
@@ -9582,7 +9582,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9593,13 +9593,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9610,13 +9610,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9627,13 +9627,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9644,12 +9644,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9660,12 +9660,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9676,12 +9676,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9692,13 +9692,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9709,13 +9709,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9726,13 +9726,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9743,13 +9743,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9760,13 +9760,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9777,13 +9777,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9794,12 +9794,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9810,12 +9810,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9826,12 +9826,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9842,13 +9842,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9859,13 +9859,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a program object
@@ -9876,13 +9876,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformMaxLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES20.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9893,13 +9893,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9910,13 +9910,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9927,13 +9927,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9944,12 +9944,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9960,12 +9960,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a renderbuffer object
@@ -9976,12 +9976,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a renderbuffer object parameter. Accepted values are RenderbufferWidth, RenderbufferHeight, RenderbufferInternalFormat, RenderbufferRedSize, RenderbufferGreenSize, RenderbufferBlueSize, RenderbufferAlphaSize, RenderbufferDepthSize, or RenderbufferStencilSize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES20.RenderbufferTarget target, OpenTK.Graphics.ES20.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a shader object
@@ -10000,7 +10000,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a shader object
@@ -10019,7 +10019,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a shader object
@@ -10038,7 +10038,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the information log for a shader object
@@ -10057,7 +10057,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10068,13 +10068,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10085,13 +10085,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10102,13 +10102,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10119,12 +10119,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10135,12 +10135,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10151,12 +10151,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10167,13 +10167,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10184,13 +10184,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10201,13 +10201,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10218,12 +10218,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10234,12 +10234,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a parameter from a shader object
@@ -10250,12 +10250,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES20.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10275,7 +10275,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10295,7 +10295,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10315,7 +10315,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.All shadertype, OpenTK.Graphics.ES20.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10334,7 +10334,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10353,7 +10353,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the range and precision for different shader numeric formats
@@ -10372,7 +10372,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES20.ShaderType shadertype, OpenTK.Graphics.ES20.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the source code string from a shader object
@@ -10391,7 +10391,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the source code string from a shader object
@@ -10410,7 +10410,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the source code string from a shader object
@@ -10429,7 +10429,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the source code string from a shader object
@@ -10448,7 +10448,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a string describing the current GL connection
@@ -10478,13 +10478,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10495,13 +10495,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10512,13 +10512,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10529,13 +10529,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10546,13 +10546,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10563,13 +10563,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10580,12 +10580,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10596,12 +10596,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10612,12 +10612,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10628,13 +10628,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10645,13 +10645,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10662,13 +10662,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10679,13 +10679,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10696,13 +10696,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10713,13 +10713,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [Obsolete("Use GetTextureParameterName overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10730,12 +10730,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10746,12 +10746,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -10762,12 +10762,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureMagFilter, TextureMinFilter, TextureWrapS, and TextureWrapT are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10778,12 +10778,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10794,12 +10794,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10810,12 +10810,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10826,12 +10826,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10842,12 +10842,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10858,12 +10858,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10874,12 +10874,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10890,12 +10890,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10906,12 +10906,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10922,12 +10922,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10938,12 +10938,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the value of a uniform variable
@@ -10954,12 +10954,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the location of a uniform variable
@@ -11002,7 +11002,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11019,7 +11019,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11036,7 +11036,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11052,7 +11052,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11068,7 +11068,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11084,7 +11084,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11101,7 +11101,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11118,7 +11118,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11135,7 +11135,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11151,7 +11151,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11167,7 +11167,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11183,7 +11183,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11200,7 +11200,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11217,7 +11217,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11234,7 +11234,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11250,7 +11250,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11266,7 +11266,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11282,7 +11282,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11299,7 +11299,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11316,7 +11316,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11333,7 +11333,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11349,7 +11349,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11365,7 +11365,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -11381,7 +11381,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES20.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -11398,7 +11398,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -11415,7 +11415,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11434,7 +11434,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11453,7 +11453,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11472,7 +11472,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11490,7 +11490,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -11506,7 +11506,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11524,7 +11524,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11542,7 +11542,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11560,7 +11560,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11579,7 +11579,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -11596,7 +11596,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11615,7 +11615,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11634,7 +11634,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11653,7 +11653,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11671,7 +11671,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -11687,7 +11687,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11705,7 +11705,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11723,7 +11723,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11741,7 +11741,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES20.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11950,13 +11950,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -11970,13 +11970,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -11990,12 +11990,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -12009,12 +12009,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -12025,11 +12025,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -12040,12 +12040,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -12058,12 +12058,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -12076,12 +12076,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -12094,11 +12094,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -12157,12 +12157,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES20.All source, Int32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES20.All source, Int32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Push a named debug group into the command stream
@@ -12176,12 +12176,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES20.All source, UInt32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES20.All source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="x"></param>
@@ -12351,12 +12351,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -12379,13 +12379,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12410,13 +12410,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12441,13 +12441,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12472,12 +12472,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12502,11 +12502,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -12529,12 +12529,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12559,12 +12559,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12589,12 +12589,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12619,11 +12619,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedShort565, UnsignedShort4444, or UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -12721,7 +12721,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -12744,7 +12744,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12769,7 +12769,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12794,7 +12794,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12819,7 +12819,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12843,7 +12843,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -12865,7 +12865,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12889,7 +12889,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12913,7 +12913,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12937,7 +12937,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12962,7 +12962,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -12985,7 +12985,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13010,7 +13010,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13035,7 +13035,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13060,7 +13060,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13084,7 +13084,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13106,7 +13106,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13130,7 +13130,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13154,7 +13154,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13178,7 +13178,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13203,7 +13203,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13226,7 +13226,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13251,7 +13251,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13276,7 +13276,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13301,7 +13301,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13325,7 +13325,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13347,7 +13347,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13371,7 +13371,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13395,7 +13395,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13419,7 +13419,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13444,7 +13444,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13467,7 +13467,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13492,7 +13492,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13517,7 +13517,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13542,7 +13542,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13566,7 +13566,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13588,7 +13588,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13612,7 +13612,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13636,7 +13636,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13660,7 +13660,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13685,7 +13685,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13708,7 +13708,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13733,7 +13733,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13758,7 +13758,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13783,7 +13783,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13807,7 +13807,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13829,7 +13829,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13853,7 +13853,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13877,7 +13877,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13901,7 +13901,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13926,7 +13926,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -13949,7 +13949,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13974,7 +13974,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13999,7 +13999,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14024,7 +14024,7 @@ namespace OpenTK.Graphics.ES20
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14048,7 +14048,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load a precompiled shader binary
@@ -14070,7 +14070,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14094,7 +14094,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14118,7 +14118,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14142,7 +14142,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES20.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -14163,7 +14163,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replace the source code in a shader object
@@ -14182,7 +14182,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replace the source code in a shader object
@@ -14201,7 +14201,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replace the source code in a shader object
@@ -14220,7 +14220,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replace the source code in a shader object
@@ -14239,7 +14239,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replace the source code in a shader object
@@ -14258,7 +14258,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set front and back function and reference value for stencil testing
@@ -14660,12 +14660,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -14694,13 +14694,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14731,13 +14731,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14768,13 +14768,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14805,12 +14805,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14841,12 +14841,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -14875,13 +14875,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14912,13 +14912,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14949,13 +14949,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -14986,12 +14986,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, OpenTK.Graphics.ES20.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15022,11 +15022,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -15055,12 +15055,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15091,12 +15091,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15127,12 +15127,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15163,11 +15163,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the texel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15211,13 +15211,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15228,13 +15228,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15245,12 +15245,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15261,12 +15261,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15308,13 +15308,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15325,13 +15325,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15342,12 +15342,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -15358,12 +15358,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureMinFilter, TextureMagFilter, TextureWrapS, or TextureWrapT.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -15392,12 +15392,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -15426,13 +15426,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15463,13 +15463,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15500,13 +15500,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15537,12 +15537,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15573,12 +15573,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -15607,13 +15607,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15644,13 +15644,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15681,13 +15681,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15718,12 +15718,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use TextureTarget2d overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15754,11 +15754,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -15787,12 +15787,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15823,12 +15823,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15859,12 +15859,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15895,11 +15895,11 @@ namespace OpenTK.Graphics.ES20
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, UnsignedShort565, UnsignedShort4444, and UnsignedShort5551.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES20.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -15929,7 +15929,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -15945,7 +15945,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -15961,7 +15961,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -15989,7 +15989,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16005,7 +16005,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16021,7 +16021,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16052,7 +16052,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16068,7 +16068,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16084,7 +16084,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16115,7 +16115,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16131,7 +16131,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16165,7 +16165,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16181,7 +16181,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16197,7 +16197,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16231,7 +16231,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16247,7 +16247,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16263,7 +16263,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16300,7 +16300,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16316,7 +16316,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16332,7 +16332,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16369,7 +16369,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16385,7 +16385,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -16401,7 +16401,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16410,7 +16410,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16419,7 +16419,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16428,7 +16428,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16437,7 +16437,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16446,7 +16446,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16455,7 +16455,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16464,7 +16464,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16473,7 +16473,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -16482,7 +16482,7 @@ namespace OpenTK.Graphics.ES20
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Install a program object as part of current rendering state
@@ -16561,7 +16561,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib1(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16574,7 +16574,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16587,7 +16587,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib1(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16600,7 +16600,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16645,7 +16645,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16658,7 +16658,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16671,7 +16671,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16684,7 +16684,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16697,7 +16697,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16710,7 +16710,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16761,7 +16761,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16774,7 +16774,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16787,7 +16787,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16800,7 +16800,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16813,7 +16813,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16826,7 +16826,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16883,7 +16883,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16896,7 +16896,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16909,7 +16909,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16922,7 +16922,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16935,7 +16935,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a generic vertex attribute
@@ -16948,7 +16948,7 @@ namespace OpenTK.Graphics.ES20
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -16968,13 +16968,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -16994,13 +16994,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17022,13 +17022,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17050,13 +17050,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17078,13 +17078,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17106,12 +17106,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -17131,12 +17131,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17158,12 +17158,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17185,12 +17185,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17212,12 +17212,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17239,13 +17239,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -17265,13 +17265,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17293,13 +17293,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17321,13 +17321,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17349,13 +17349,13 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17377,12 +17377,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -17402,12 +17402,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17429,12 +17429,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17456,12 +17456,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -17483,12 +17483,12 @@ namespace OpenTK.Graphics.ES20
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first generic vertex attribute in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES20.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -18004,7 +18004,7 @@ namespace OpenTK.Graphics.ES20
             /// Specifies the address of an array of pointers to source code strings from which to create the program object.
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glCreateShaderProgramvEXT")]
-            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES20.All type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES20.All type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18014,7 +18014,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18024,7 +18024,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18037,7 +18037,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18050,7 +18050,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18063,7 +18063,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18076,7 +18076,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18089,7 +18089,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -18102,7 +18102,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18112,7 +18112,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18122,7 +18122,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18135,7 +18135,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18148,7 +18148,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18161,7 +18161,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18174,7 +18174,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18187,7 +18187,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -18200,7 +18200,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_buffers_indexed]</summary>
             /// <param name="target"></param>
@@ -18222,7 +18222,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, OpenTK.Graphics.ES20.All[] attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES20.All[] attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -18230,7 +18230,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, ref OpenTK.Graphics.ES20.All attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES20.All attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -18238,7 +18238,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, OpenTK.Graphics.ES20.All* attachments) { throw new NotImplementedException(); }
+            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES20.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES20.All* attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a range of elements
@@ -18364,7 +18364,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES20.All[] location, Int32[] indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.All[] location, [CountAttribute(Parameter = "n")] Int32[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -18372,7 +18372,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, ref OpenTK.Graphics.ES20.All location, ref Int32 indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES20.All location, [CountAttribute(Parameter = "n")] ref Int32 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -18380,7 +18380,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES20.All* location, Int32* indices) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.All* location, [CountAttribute(Parameter = "n")] Int32* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -18394,7 +18394,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18402,7 +18402,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -18416,7 +18416,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18425,7 +18425,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18441,7 +18441,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18450,7 +18450,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18466,7 +18466,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18475,7 +18475,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18491,7 +18491,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18499,7 +18499,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18515,14 +18515,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -18536,7 +18536,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18544,7 +18544,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18560,7 +18560,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18568,7 +18568,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18584,7 +18584,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -18592,7 +18592,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18608,14 +18608,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -18832,7 +18832,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -18845,7 +18845,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -18858,7 +18858,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -18871,7 +18871,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -18884,7 +18884,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -18897,7 +18897,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18917,7 +18917,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18930,7 +18930,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18943,7 +18943,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18956,7 +18956,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18969,7 +18969,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -18982,7 +18982,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusEXT")]
@@ -19097,7 +19097,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19106,7 +19106,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19115,7 +19115,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19124,7 +19124,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19133,7 +19133,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19142,7 +19142,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19151,7 +19151,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19160,7 +19160,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19169,7 +19169,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19178,7 +19178,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19187,7 +19187,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -19196,7 +19196,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19218,7 +19218,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19240,7 +19240,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19262,7 +19262,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19284,7 +19284,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19306,7 +19306,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -19328,7 +19328,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19348,7 +19348,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19368,7 +19368,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19388,7 +19388,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19408,7 +19408,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19428,7 +19428,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -19448,7 +19448,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve properties of a program pipeline object
@@ -19606,13 +19606,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19623,13 +19623,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19640,13 +19640,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19657,12 +19657,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19673,12 +19673,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19689,12 +19689,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19705,13 +19705,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19722,13 +19722,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19739,13 +19739,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19756,12 +19756,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19772,12 +19772,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -19788,12 +19788,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20002,13 +20002,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20019,13 +20019,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20036,13 +20036,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20053,12 +20053,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20069,12 +20069,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -20085,12 +20085,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES20.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Return parameters of a query object
@@ -20194,176 +20194,176 @@ namespace OpenTK.Graphics.ES20
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -20613,10 +20613,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20625,7 +20625,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -20633,10 +20633,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20645,7 +20645,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -20653,10 +20653,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20665,7 +20665,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -20673,10 +20673,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20684,7 +20684,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -20692,10 +20692,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20703,7 +20703,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -20711,10 +20711,10 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -20722,7 +20722,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -20730,13 +20730,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20745,7 +20745,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES20.All mode, Int32[] count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -20753,13 +20753,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20768,7 +20768,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20778,13 +20778,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20793,7 +20793,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20803,13 +20803,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20818,7 +20818,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20828,13 +20828,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20843,7 +20843,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20853,13 +20853,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20868,7 +20868,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES20.All mode, ref Int32 count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -20876,13 +20876,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20891,7 +20891,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20901,13 +20901,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20916,7 +20916,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20926,13 +20926,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20941,7 +20941,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20951,13 +20951,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20966,7 +20966,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20976,13 +20976,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -20991,7 +20991,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES20.All mode, Int32* count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -20999,13 +20999,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21014,7 +21014,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21024,13 +21024,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21039,7 +21039,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21049,13 +21049,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21064,7 +21064,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21074,13 +21074,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21089,7 +21089,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21099,13 +21099,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21113,7 +21113,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -21121,13 +21121,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21135,7 +21135,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21145,13 +21145,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21159,7 +21159,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21169,13 +21169,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21183,7 +21183,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21193,13 +21193,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21207,7 +21207,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21217,13 +21217,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21231,7 +21231,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -21239,13 +21239,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21253,7 +21253,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21263,13 +21263,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21277,7 +21277,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21287,13 +21287,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21301,7 +21301,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21311,13 +21311,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21325,7 +21325,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21335,13 +21335,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21349,7 +21349,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -21357,13 +21357,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21371,7 +21371,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21381,13 +21381,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21395,7 +21395,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21405,13 +21405,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21419,7 +21419,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21429,13 +21429,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -21443,7 +21443,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21590,7 +21590,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21609,7 +21609,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21628,7 +21628,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21647,7 +21647,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21666,7 +21666,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21685,7 +21685,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21736,7 +21736,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21755,7 +21755,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21774,7 +21774,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21793,7 +21793,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21812,7 +21812,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21831,7 +21831,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21866,7 +21866,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21885,7 +21885,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21904,7 +21904,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21961,7 +21961,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21980,7 +21980,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -21999,7 +21999,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22018,7 +22018,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22037,7 +22037,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22056,7 +22056,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22113,7 +22113,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22132,7 +22132,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22151,7 +22151,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22170,7 +22170,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22208,7 +22208,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22227,7 +22227,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22246,7 +22246,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22309,7 +22309,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22328,7 +22328,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22347,7 +22347,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22366,7 +22366,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22385,7 +22385,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22404,7 +22404,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22467,7 +22467,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22486,7 +22486,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22505,7 +22505,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22524,7 +22524,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22543,7 +22543,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22562,7 +22562,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22603,7 +22603,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22622,7 +22622,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22641,7 +22641,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22710,7 +22710,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22729,7 +22729,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22748,7 +22748,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22767,7 +22767,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22786,7 +22786,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22805,7 +22805,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22874,7 +22874,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22893,7 +22893,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22912,7 +22912,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22931,7 +22931,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22950,7 +22950,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -22969,7 +22969,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -23013,7 +23013,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -23032,7 +23032,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -23051,7 +23051,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23061,7 +23061,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23071,7 +23071,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23081,7 +23081,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23091,7 +23091,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23101,7 +23101,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23111,7 +23111,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23121,7 +23121,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23131,7 +23131,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23141,7 +23141,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23151,7 +23151,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23161,7 +23161,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23171,7 +23171,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23181,7 +23181,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23191,7 +23191,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23201,7 +23201,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23211,7 +23211,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23221,7 +23221,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23231,7 +23231,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23241,7 +23241,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23251,7 +23251,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23261,7 +23261,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23271,7 +23271,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23281,7 +23281,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23291,7 +23291,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23301,7 +23301,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23311,7 +23311,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23321,7 +23321,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23331,7 +23331,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23341,7 +23341,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23351,7 +23351,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23361,7 +23361,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23371,7 +23371,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23381,7 +23381,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23391,7 +23391,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23401,7 +23401,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23411,7 +23411,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23421,7 +23421,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23431,7 +23431,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23441,7 +23441,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23451,7 +23451,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23461,7 +23461,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23471,7 +23471,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23481,7 +23481,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23491,7 +23491,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23501,7 +23501,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23511,7 +23511,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23521,7 +23521,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23531,7 +23531,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23541,7 +23541,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23551,7 +23551,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23561,7 +23561,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23571,7 +23571,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23581,7 +23581,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -23591,7 +23591,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -23642,7 +23642,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -23656,7 +23656,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23672,7 +23672,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23688,7 +23688,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23703,7 +23703,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23717,7 +23717,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -23730,7 +23730,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23745,7 +23745,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23760,7 +23760,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23774,7 +23774,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -23824,74 +23824,74 @@ namespace OpenTK.Graphics.ES20
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, UInt32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, ref UInt32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, UInt32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_buffer]
             /// Attach the storage for a buffer object to the active buffer texture
@@ -24050,104 +24050,104 @@ namespace OpenTK.Graphics.ES20
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.All target, OpenTK.Graphics.ES20.All pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES20.TextureTarget target, OpenTK.Graphics.ES20.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_storage]
             /// Simultaneously specify storage for all levels of a one-dimensional texture
@@ -25806,7 +25806,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All[] sources, [OutAttribute] OpenTK.Graphics.ES20.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES20.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25838,7 +25838,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.All sources, [OutAttribute] out OpenTK.Graphics.ES20.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES20.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25870,7 +25870,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All* sources, [OutAttribute] OpenTK.Graphics.ES20.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES20.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25901,7 +25901,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25932,7 +25932,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25963,7 +25963,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -25995,7 +25995,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All[] sources, [OutAttribute] OpenTK.Graphics.ES20.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES20.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -26027,7 +26027,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.All sources, [OutAttribute] out OpenTK.Graphics.ES20.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES20.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -26059,7 +26059,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.All* sources, [OutAttribute] OpenTK.Graphics.ES20.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES20.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -26090,7 +26090,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -26121,7 +26121,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES20.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -26152,7 +26152,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES20.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusKHR")]
@@ -26314,7 +26314,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26337,7 +26337,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26360,7 +26360,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26383,7 +26383,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26406,7 +26406,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26429,7 +26429,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26451,7 +26451,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26473,7 +26473,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26495,7 +26495,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26517,7 +26517,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26539,7 +26539,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -26561,7 +26561,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES20.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -26581,7 +26581,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -26601,7 +26601,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -26621,7 +26621,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -26641,7 +26641,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26663,7 +26663,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26685,7 +26685,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26707,7 +26707,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26729,7 +26729,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26751,7 +26751,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26773,7 +26773,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26795,7 +26795,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26817,7 +26817,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26839,7 +26839,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26861,7 +26861,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -26883,7 +26883,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -27147,7 +27147,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -27161,7 +27161,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27177,7 +27177,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27193,7 +27193,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27208,7 +27208,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27222,7 +27222,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -27235,7 +27235,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27250,7 +27250,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27265,7 +27265,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27279,7 +27279,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -27470,55 +27470,55 @@ namespace OpenTK.Graphics.ES20
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a range of elements
@@ -27569,7 +27569,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES20.All[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.All[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -27583,7 +27583,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES20.All bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES20.All bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -27597,7 +27597,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES20.All* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.All* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -27610,7 +27610,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES20.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -27623,7 +27623,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES20.DrawBufferMode bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES20.DrawBufferMode bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -27636,7 +27636,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES20.DrawBufferMode* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES20.DrawBufferMode* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -27650,7 +27650,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27658,7 +27658,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -27672,7 +27672,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27681,7 +27681,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27697,7 +27697,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27706,7 +27706,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27722,7 +27722,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27731,7 +27731,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27747,7 +27747,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27755,7 +27755,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.All mode, Int32 count, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27771,14 +27771,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -27792,7 +27792,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27800,7 +27800,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27816,7 +27816,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27824,7 +27824,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27840,7 +27840,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27848,7 +27848,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27864,14 +27864,14 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES20.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES20.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27897,90 +27897,90 @@ namespace OpenTK.Graphics.ES20
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES20.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
@@ -28079,7 +28079,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28088,7 +28088,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28097,7 +28097,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28106,7 +28106,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28115,7 +28115,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28124,7 +28124,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28133,7 +28133,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28142,7 +28142,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28151,7 +28151,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28160,7 +28160,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28169,7 +28169,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28178,7 +28178,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28187,7 +28187,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28196,7 +28196,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28205,7 +28205,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28214,7 +28214,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28223,7 +28223,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -28232,7 +28232,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_instanced_arrays]
             /// Modify the rate at which generic vertex attributes advance during instanced rendering
@@ -28316,7 +28316,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image in a compressed format
@@ -28351,7 +28351,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28388,7 +28388,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28425,7 +28425,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28461,7 +28461,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28496,7 +28496,7 @@ namespace OpenTK.Graphics.ES20
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image in a compressed format
@@ -28530,7 +28530,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28566,7 +28566,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28602,7 +28602,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28637,7 +28637,7 @@ namespace OpenTK.Graphics.ES20
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -28679,7 +28679,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -28720,7 +28720,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -28763,7 +28763,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -28806,7 +28806,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -28848,7 +28848,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -28889,7 +28889,7 @@ namespace OpenTK.Graphics.ES20
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -28929,7 +28929,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -28971,7 +28971,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -29013,7 +29013,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -29054,7 +29054,7 @@ namespace OpenTK.Graphics.ES20
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -29133,7 +29133,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29143,7 +29143,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29156,7 +29156,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29169,7 +29169,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29182,7 +29182,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29195,7 +29195,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29208,7 +29208,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -29221,7 +29221,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_EGL_image]</summary>
             /// <param name="target"></param>
@@ -29275,7 +29275,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -29288,7 +29288,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -29301,7 +29301,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -29314,7 +29314,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -29327,7 +29327,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -29340,7 +29340,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_mapbuffer]</summary>
             /// <param name="target"></param>
@@ -29460,7 +29460,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -29483,7 +29483,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29508,7 +29508,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29533,7 +29533,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29558,7 +29558,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29583,7 +29583,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -29606,7 +29606,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29631,7 +29631,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29656,7 +29656,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29681,7 +29681,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29706,7 +29706,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -29729,7 +29729,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29754,7 +29754,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29779,7 +29779,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29804,7 +29804,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29829,7 +29829,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -29852,7 +29852,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29877,7 +29877,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29902,7 +29902,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29927,7 +29927,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -29952,7 +29952,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -29975,7 +29975,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30000,7 +30000,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30025,7 +30025,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30050,7 +30050,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30075,7 +30075,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -30098,7 +30098,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30123,7 +30123,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30148,7 +30148,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30173,7 +30173,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES20.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -30235,7 +30235,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -30254,7 +30254,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30275,7 +30275,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30296,7 +30296,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30317,7 +30317,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30338,7 +30338,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -30357,7 +30357,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30378,7 +30378,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30399,7 +30399,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30420,7 +30420,7 @@ namespace OpenTK.Graphics.ES20
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES20.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -30454,12 +30454,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -30491,13 +30491,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30531,13 +30531,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30571,13 +30571,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30611,12 +30611,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, OpenTK.Graphics.ES20.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30650,12 +30650,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -30687,13 +30687,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30727,13 +30727,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30767,13 +30767,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30807,12 +30807,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30846,12 +30846,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -30883,13 +30883,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30923,13 +30923,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -30963,13 +30963,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31003,12 +31003,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31042,11 +31042,11 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -31078,12 +31078,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31117,12 +31117,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31156,12 +31156,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31195,11 +31195,11 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES20.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES20.PixelFormat format, OpenTK.Graphics.ES20.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -31263,12 +31263,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage
@@ -31303,13 +31303,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31346,13 +31346,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31389,13 +31389,13 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31432,12 +31432,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31474,11 +31474,11 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage
@@ -31513,12 +31513,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31555,12 +31555,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31597,12 +31597,12 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31639,11 +31639,11 @@ namespace OpenTK.Graphics.ES20
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES20.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES20.All format, OpenTK.Graphics.ES20.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -31758,7 +31758,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31766,7 +31766,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31775,7 +31775,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out Int32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out Int32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31784,7 +31784,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] Int32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31793,7 +31793,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31801,7 +31801,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31810,7 +31810,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out UInt32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out UInt32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -31819,7 +31819,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31828,7 +31828,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31836,7 +31836,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31845,7 +31845,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31854,7 +31854,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31863,7 +31863,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31871,7 +31871,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31880,7 +31880,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -31889,7 +31889,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="program"></param>
@@ -31952,7 +31952,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -31960,7 +31960,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -31969,7 +31969,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out Int32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out Int32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -31978,7 +31978,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] Int32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -31987,7 +31987,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -31995,7 +31995,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -32004,7 +32004,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out UInt32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out UInt32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -32013,7 +32013,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32022,7 +32022,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32030,7 +32030,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32039,7 +32039,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32048,7 +32048,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32057,7 +32057,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32065,7 +32065,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32074,7 +32074,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -32083,7 +32083,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32092,7 +32092,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32100,7 +32100,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32109,7 +32109,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out Int32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out Int32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32118,7 +32118,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] Int32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32127,7 +32127,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32135,7 +32135,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32144,7 +32144,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out UInt32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out UInt32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -32153,7 +32153,7 @@ namespace OpenTK.Graphics.ES20
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="texture"></param>
@@ -32374,7 +32374,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] Int32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -32382,7 +32382,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] UInt32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -32390,7 +32390,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out Int32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -32398,7 +32398,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out UInt32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out UInt32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -32406,7 +32406,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] Int32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -32414,7 +32414,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32423,7 +32423,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32432,7 +32432,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32441,7 +32441,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32450,7 +32450,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32459,7 +32459,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -32468,7 +32468,7 @@ namespace OpenTK.Graphics.ES20
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_tiled_rendering]</summary>
             /// <param name="x"></param>
@@ -32497,34 +32497,34 @@ namespace OpenTK.Graphics.ES20
         private static extern void glBeginPerfMonitorAMD(UInt32 monitor);
         [Slot(68)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, UInt32* monitors);
+        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(104)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEndPerfMonitorAMD(UInt32 monitor);
         [Slot(136)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute] UInt32* monitors);
+        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten);
+        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten);
         [Slot(180)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute] IntPtr data);
+        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data);
         [Slot(181)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters);
+        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters);
         [Slot(182)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr counterString);
+        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr counterString);
         [Slot(183)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups);
+        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups);
         [Slot(184)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr groupString);
+        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr groupString);
         [Slot(311)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList);
+        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList);
         [Slot(28)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlitFramebufferANGLE(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
@@ -32533,10 +32533,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glDrawArraysInstancedANGLE(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(95)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] IntPtr source);
         [Slot(301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleANGLE(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
@@ -32560,7 +32560,7 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glGetInteger64vAPPLE(System.Int32 pname, [OutAttribute] Int64* @params);
         [Slot(208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(232)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsSyncAPPLE(IntPtr sync);
@@ -32611,10 +32611,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glBlendFuncSeparate(System.Int32 sfactorRGB, System.Int32 dfactorRGB, System.Int32 sfactorAlpha, System.Int32 dfactorAlpha);
         [Slot(30)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(31)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(32)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glCheckFramebufferStatus(System.Int32 target);
@@ -32638,10 +32638,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glCompileShader(UInt32 shader);
         [Slot(41)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(43)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(47)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border);
@@ -32662,28 +32662,28 @@ namespace OpenTK.Graphics.ES20
         private static extern void glDebugMessageCallback(DebugProc callback, IntPtr userParam);
         [Slot(61)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(63)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Computed = "buf,length")] IntPtr buf);
         [Slot(65)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(67)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffers(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(70)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteProgram(UInt32 program);
         [Slot(73)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffers(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(74)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteShader(UInt32 shader);
         [Slot(76)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(78)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -32707,7 +32707,7 @@ namespace OpenTK.Graphics.ES20
         private static extern void glDrawArrays(System.Int32 mode, Int32 first, Int32 count);
         [Slot(94)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnable(System.Int32 cap);
@@ -32731,55 +32731,55 @@ namespace OpenTK.Graphics.ES20
         private static extern void glFrontFace(System.Int32 mode);
         [Slot(132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(133)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGenerateMipmap(System.Int32 target);
         [Slot(135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(144)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders);
+        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders);
         [Slot(145)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocation(UInt32 program, IntPtr name);
         [Slot(146)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(149)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
         [Slot(156)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(157)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(158)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatus();
         [Slot(163)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(165)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetnUniformfv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
@@ -32791,61 +32791,61 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glGetnUniformuiv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(188)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(191)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(192)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(203)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision);
+        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision);
         [Slot(206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr source);
         [Slot(207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
         [Slot(209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params);
         [Slot(215)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params);
         [Slot(216)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocation(UInt32 program, IntPtr name);
         [Slot(217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(218)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(219)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(220)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
@@ -32878,10 +32878,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glLinkProgram(UInt32 program);
         [Slot(243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, IntPtr label);
+        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(245)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, IntPtr label);
+        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelStorei(System.Int32 pname, Int32 param);
@@ -32893,13 +32893,13 @@ namespace OpenTK.Graphics.ES20
         private static extern void glPopDebugGroup();
         [Slot(289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
+        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] IntPtr message);
         [Slot(295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
         [Slot(298)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReleaseShaderCompiler();
@@ -32914,10 +32914,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glScissor(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(313)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderBinary(Int32 count, UInt32* shaders, System.Int32 binaryformat, IntPtr binary, Int32 length);
+        private static extern unsafe void glShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, System.Int32 binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(314)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(316)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilFunc(System.Int32 func, Int32 @ref, UInt32 mask);
@@ -32938,79 +32938,79 @@ namespace OpenTK.Graphics.ES20
         private static extern void glStencilOpSeparate(System.Int32 face, System.Int32 sfail, System.Int32 dpfail, System.Int32 dppass);
         [Slot(325)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(327)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(328)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(337)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(343)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1f(Int32 location, Single v0);
         [Slot(344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(345)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i(Int32 location, Int32 v0);
         [Slot(346)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(347)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2f(Int32 location, Single v0, Single v1);
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i(Int32 location, Int32 v0, Int32 v1);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3f(Int32 location, Single v0, Single v1, Single v2);
         [Slot(352)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(353)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(355)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4f(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(357)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(358)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(359)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUseProgram(UInt32 program);
@@ -33022,28 +33022,28 @@ namespace OpenTK.Graphics.ES20
         private static extern void glVertexAttrib1f(UInt32 index, Single x);
         [Slot(375)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fv(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2f(UInt32 index, Single x, Single y);
         [Slot(377)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fv(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3f(UInt32 index, Single x, Single y, Single z);
         [Slot(379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fv(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(380)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4f(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewport(Int32 x, Int32 y, Int32 width, Int32 height);
@@ -33085,19 +33085,19 @@ namespace OpenTK.Graphics.ES20
         private static extern Int32 glCreateShaderProgramEXT(System.Int32 type, IntPtr @string);
         [Slot(57)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(71)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(72)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueriesEXT(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueriesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(84)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDisableiEXT(System.Int32 target, UInt32 index);
         [Slot(86)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(89)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedEXT(System.Int32 mode, Int32 start, Int32 count, Int32 primcount);
@@ -33106,10 +33106,10 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glDrawBuffersEXT(Int32 n, System.Int32* bufs);
         [Slot(92)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, System.Int32* location, Int32* indices);
+        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* location, [CountAttribute(Parameter = "n")] Int32* indices);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(102)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableiEXT(System.Int32 target, UInt32 index);
@@ -33127,10 +33127,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glFramebufferTextureEXT(System.Int32 target, System.Int32 attachment, UInt32 texture, Int32 level);
         [Slot(137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(159)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusEXT();
@@ -33139,16 +33139,16 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glGetIntegeri_vEXT(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
         [Slot(166)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(169)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(193)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(194)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetProgramPipelineivEXT(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -33157,28 +33157,28 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glGetQueryivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(196)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(197)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectivEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(198)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(199)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectuivEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
         [Slot(201)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInsertEventMarkerEXT(Int32 length, IntPtr marker);
@@ -33199,10 +33199,10 @@ namespace OpenTK.Graphics.ES20
         private static extern IntPtr glMapBufferRangeEXT(System.Int32 target, IntPtr offset, IntPtr length, UInt32 access);
         [Slot(241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount);
         [Slot(242)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount);
         [Slot(247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPatchParameteriEXT(System.Int32 pname, Int32 value);
@@ -33220,100 +33220,100 @@ namespace OpenTK.Graphics.ES20
         private static extern void glProgramUniform1fEXT(UInt32 program, Int32 location, Single v0);
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1iEXT(UInt32 program, Int32 location, Int32 v0);
         [Slot(259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value);
         [Slot(260)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1uiEXT(UInt32 program, Int32 location, UInt32 v0);
         [Slot(261)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value);
         [Slot(262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2fEXT(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(264)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(280)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPushGroupMarkerEXT(Int32 length, IntPtr marker);
@@ -33325,16 +33325,16 @@ namespace OpenTK.Graphics.ES20
         private static extern void glReadBufferIndexedEXT(System.Int32 src, Int32 index);
         [Slot(296)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(303)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleEXT(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(308)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, UInt32* param);
+        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* param);
         [Slot(323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexBufferEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer);
@@ -33343,10 +33343,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glTexBufferRangeEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage1DEXT(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width);
@@ -33430,7 +33430,7 @@ namespace OpenTK.Graphics.ES20
         private static extern void glDebugMessageInsertKHR(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
         [Slot(150)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(160)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusKHR();
@@ -33445,10 +33445,10 @@ namespace OpenTK.Graphics.ES20
         private static extern unsafe void glGetnUniformuivKHR(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(189)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetPointervKHR(System.Int32 pname, [OutAttribute] IntPtr @params);
@@ -33466,7 +33466,7 @@ namespace OpenTK.Graphics.ES20
         private static extern void glPushDebugGroupKHR(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
         [Slot(297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(16)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendBarrierNV();
@@ -33487,25 +33487,25 @@ namespace OpenTK.Graphics.ES20
         private static extern void glCoverageOperationNV(System.Int32 operation);
         [Slot(66)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesNV(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(90)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedNV(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(93)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersNV(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffersNV(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinishFenceNV(UInt32 fence);
         [Slot(134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(154)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFenceNV(UInt32 fence);
@@ -33523,22 +33523,22 @@ namespace OpenTK.Graphics.ES20
         private static extern byte glTestFenceNV(UInt32 fence);
         [Slot(360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(361)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(363)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribDivisorNV(UInt32 index, UInt32 divisor);
@@ -33547,16 +33547,16 @@ namespace OpenTK.Graphics.ES20
         private static extern void glBindVertexArrayOES(UInt32 array);
         [Slot(42)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(44)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(49)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(77)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEGLImageTargetRenderbufferStorageOES(System.Int32 target, IntPtr image);
@@ -33568,13 +33568,13 @@ namespace OpenTK.Graphics.ES20
         private static extern void glFramebufferTexture3DOES(System.Int32 target, System.Int32 attachment, System.Int32 textarget, UInt32 texture, Int32 level, Int32 zoffset);
         [Slot(141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(148)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetBufferPointervOES(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
         [Slot(190)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsVertexArrayOES(UInt32 array);
@@ -33586,16 +33586,16 @@ namespace OpenTK.Graphics.ES20
         private static extern void glMinSampleShadingOES(Single value);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(326)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage3DMultisampleOES(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(368)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBufferOES(System.Int32 target);
@@ -33616,22 +33616,22 @@ namespace OpenTK.Graphics.ES20
         private static extern void glExtGetBufferPointervQCOM(System.Int32 target, [OutAttribute] IntPtr @params);
         [Slot(109)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers);
+        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers);
         [Slot(110)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers);
+        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers);
         [Slot(111)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetProgramBinarySourceQCOM(UInt32 program, System.Int32 shadertype, [OutAttribute] IntPtr source, [OutAttribute] Int32* length);
         [Slot(112)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms);
+        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms);
         [Slot(113)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers);
+        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers);
         [Slot(114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetShadersQCOM([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders);
+        private static extern unsafe void glExtGetShadersQCOM([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders);
         [Slot(115)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetTexLevelParameterivQCOM(UInt32 texture, System.Int32 face, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -33649,10 +33649,10 @@ namespace OpenTK.Graphics.ES20
         private static extern void glExtTexObjectStateOverrideiQCOM(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls);
+        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls);
         [Slot(152)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr driverControlString);
+        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr driverControlString);
         [Slot(315)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStartTilingQCOM(UInt32 x, UInt32 y, UInt32 width, UInt32 height, UInt32 preserveMask);
index 0db40b5..3f0f522 100644 (file)
@@ -1051,55 +1051,55 @@ namespace OpenTK.Graphics.ES30
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, Int32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1123,42 +1123,42 @@ namespace OpenTK.Graphics.ES30
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] Int32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out Int32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out UInt32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1168,7 +1168,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] Int32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1178,7 +1178,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] out Int32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out Int32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1188,7 +1188,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] Int32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1198,7 +1198,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] UInt32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1208,7 +1208,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] out UInt32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out UInt32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1218,25 +1218,25 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES30.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1244,10 +1244,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1255,10 +1255,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1266,10 +1266,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1277,19 +1277,19 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1297,10 +1297,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1308,10 +1308,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1319,10 +1319,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1334,7 +1334,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] Int32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1344,7 +1344,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out Int32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out Int32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1354,7 +1354,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] Int32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1364,7 +1364,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1374,7 +1374,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out UInt32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out UInt32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1384,7 +1384,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1394,7 +1394,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1404,7 +1404,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1414,7 +1414,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1424,7 +1424,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1432,7 +1432,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] Int32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1440,7 +1440,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out Int32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out Int32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1448,7 +1448,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] UInt32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1456,7 +1456,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out UInt32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out UInt32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1464,7 +1464,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] Int32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1472,7 +1472,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1481,7 +1481,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1490,7 +1490,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1499,7 +1499,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1508,7 +1508,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1518,7 +1518,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1528,7 +1528,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] out Int32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out Int32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1538,7 +1538,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32* counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1548,7 +1548,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1558,7 +1558,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] out UInt32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out UInt32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1568,7 +1568,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList) { throw new NotImplementedException(); }
 
         }
 
@@ -1696,7 +1696,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1704,7 +1704,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1718,7 +1718,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1727,7 +1727,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1743,7 +1743,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1752,7 +1752,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1768,7 +1768,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1777,7 +1777,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1793,7 +1793,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1801,7 +1801,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1817,14 +1817,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1838,7 +1838,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1846,7 +1846,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1862,7 +1862,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1870,7 +1870,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1886,7 +1886,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1894,7 +1894,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1910,14 +1910,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1929,7 +1929,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1939,7 +1939,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1949,7 +1949,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1959,7 +1959,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1969,7 +1969,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -1979,7 +1979,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_framebuffer_multisample]
             /// Establish data storage, format, dimensions and sample count of a renderbuffer object's image
@@ -2251,7 +2251,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2274,7 +2274,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2297,7 +2297,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2319,7 +2319,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2341,7 +2341,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2363,7 +2363,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Determine if a name corresponds to a sync object
@@ -3415,7 +3415,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES30.All target, Int32 size, IntPtr data, OpenTK.Graphics.ES30.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES30.All target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES30.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3435,7 +3435,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3457,7 +3457,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3479,7 +3479,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3500,7 +3500,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3521,7 +3521,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES30.All target, IntPtr size, IntPtr data, OpenTK.Graphics.ES30.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES30.All target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES30.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3541,7 +3541,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3563,7 +3563,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3585,7 +3585,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3606,7 +3606,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES30.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES30.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3626,7 +3626,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.ES30.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES30.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3645,7 +3645,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3666,7 +3666,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3687,7 +3687,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3707,7 +3707,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3727,7 +3727,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.ES30.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES30.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3746,7 +3746,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3767,7 +3767,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3788,7 +3788,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3808,7 +3808,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES30.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES30.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3829,7 +3829,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -3849,7 +3849,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3871,7 +3871,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3893,7 +3893,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3914,7 +3914,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3935,7 +3935,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -3955,7 +3955,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3977,7 +3977,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3999,7 +3999,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4020,7 +4020,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4040,7 +4040,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -4059,7 +4059,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4080,7 +4080,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4101,7 +4101,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4121,7 +4121,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4141,7 +4141,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -4160,7 +4160,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4181,7 +4181,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4202,7 +4202,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4222,7 +4222,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES30.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -4310,13 +4310,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, Single[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4327,13 +4327,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, ref Single value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4344,13 +4344,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4361,12 +4361,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, Single[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4377,12 +4377,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, ref Single value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4393,12 +4393,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4409,13 +4409,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, Int32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4426,13 +4426,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4443,13 +4443,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4460,12 +4460,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, Int32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4476,12 +4476,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4492,12 +4492,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4508,13 +4508,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4525,13 +4525,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4542,13 +4542,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4559,12 +4559,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4575,12 +4575,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -4591,12 +4591,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES30.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify clear values for the color buffers
@@ -4767,7 +4767,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -4799,7 +4799,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4833,7 +4833,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4867,7 +4867,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4900,7 +4900,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4932,7 +4932,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -4963,7 +4963,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4996,7 +4996,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -5029,7 +5029,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -5061,7 +5061,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -5097,7 +5097,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image in a compressed format
@@ -5132,7 +5132,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5169,7 +5169,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5206,7 +5206,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5242,7 +5242,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5277,7 +5277,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image in a compressed format
@@ -5311,7 +5311,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5347,7 +5347,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5383,7 +5383,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5418,7 +5418,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5454,7 +5454,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -5489,7 +5489,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5526,7 +5526,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5563,7 +5563,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5599,7 +5599,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5634,7 +5634,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -5668,7 +5668,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5704,7 +5704,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5740,7 +5740,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5775,7 +5775,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5817,7 +5817,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -5858,7 +5858,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5901,7 +5901,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5944,7 +5944,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5986,7 +5986,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -6027,7 +6027,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -6067,7 +6067,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -6109,7 +6109,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -6151,7 +6151,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -6192,7 +6192,7 @@ namespace OpenTK.Graphics.ES30
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -6610,7 +6610,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6636,7 +6636,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6662,7 +6662,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6688,7 +6688,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6714,7 +6714,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6740,7 +6740,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, OpenTK.Graphics.ES30.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6765,7 +6765,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6790,7 +6790,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6815,7 +6815,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6840,7 +6840,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6865,7 +6865,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -6890,7 +6890,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES30.DebugSourceControl source, OpenTK.Graphics.ES30.DebugTypeControl type, OpenTK.Graphics.ES30.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -6910,13 +6910,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, Int32 id, OpenTK.Graphics.ES30.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, Int32 id, OpenTK.Graphics.ES30.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -6936,13 +6936,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, UInt32 id, OpenTK.Graphics.ES30.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES30.All source, OpenTK.Graphics.ES30.All type, UInt32 id, OpenTK.Graphics.ES30.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -6962,12 +6962,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES30.DebugSourceExternal source, OpenTK.Graphics.ES30.DebugType type, Int32 id, OpenTK.Graphics.ES30.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES30.DebugSourceExternal source, OpenTK.Graphics.ES30.DebugType type, Int32 id, OpenTK.Graphics.ES30.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -6987,12 +6987,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES30.DebugSourceExternal source, OpenTK.Graphics.ES30.DebugType type, UInt32 id, OpenTK.Graphics.ES30.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES30.DebugSourceExternal source, OpenTK.Graphics.ES30.DebugType type, UInt32 id, OpenTK.Graphics.ES30.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7002,7 +7002,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7012,7 +7012,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7025,7 +7025,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7038,7 +7038,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7051,7 +7051,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7064,7 +7064,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7077,7 +7077,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -7090,7 +7090,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7100,7 +7100,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7110,7 +7110,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7123,7 +7123,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7136,7 +7136,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7149,7 +7149,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7162,7 +7162,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7175,7 +7175,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -7188,7 +7188,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Deletes a program object
@@ -7218,7 +7218,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7228,7 +7228,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7241,7 +7241,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7254,7 +7254,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7267,7 +7267,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7280,7 +7280,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7293,7 +7293,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -7306,7 +7306,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7316,7 +7316,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7326,7 +7326,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7339,7 +7339,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7352,7 +7352,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7365,7 +7365,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7378,7 +7378,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7391,7 +7391,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -7404,7 +7404,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7414,7 +7414,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7424,7 +7424,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7437,7 +7437,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7450,7 +7450,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7463,7 +7463,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7476,7 +7476,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7489,7 +7489,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -7502,7 +7502,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Deletes a shader object
@@ -7541,7 +7541,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7551,7 +7551,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7564,7 +7564,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7577,7 +7577,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7590,7 +7590,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7603,7 +7603,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7616,7 +7616,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -7629,7 +7629,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7639,7 +7639,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7649,7 +7649,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7662,7 +7662,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7675,7 +7675,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7688,7 +7688,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7701,7 +7701,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7714,7 +7714,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -7727,7 +7727,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7737,7 +7737,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7747,7 +7747,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7760,7 +7760,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7773,7 +7773,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7786,7 +7786,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7799,7 +7799,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7812,7 +7812,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -7825,7 +7825,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value used for depth buffer comparisons
@@ -7996,7 +7996,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.All[] bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All[] bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -8010,7 +8010,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES30.All bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES30.All bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -8024,7 +8024,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.All* bufs) { throw new NotImplementedException(); }
+        public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All* bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -8037,7 +8037,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -8050,7 +8050,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES30.DrawBufferMode bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES30.DrawBufferMode bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -8063,7 +8063,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.DrawBufferMode* bufs) { throw new NotImplementedException(); }
+        public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.DrawBufferMode* bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -8077,12 +8077,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -8096,13 +8096,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8118,13 +8118,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8140,13 +8140,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8162,12 +8162,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8183,11 +8183,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -8201,12 +8201,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8222,12 +8222,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8243,12 +8243,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8264,11 +8264,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8284,7 +8284,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8292,7 +8292,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Draw multiple instances of a set of elements
@@ -8306,7 +8306,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8315,7 +8315,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8331,7 +8331,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8340,7 +8340,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8356,7 +8356,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8365,7 +8365,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8381,7 +8381,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8389,7 +8389,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8405,14 +8405,14 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Draw multiple instances of a set of elements
@@ -8426,7 +8426,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8434,7 +8434,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8450,7 +8450,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8458,7 +8458,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8474,7 +8474,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -8482,7 +8482,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8498,14 +8498,14 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -8527,13 +8527,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8553,13 +8553,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8581,13 +8581,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8609,13 +8609,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8637,13 +8637,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8665,13 +8665,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8691,13 +8691,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8719,13 +8719,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8747,13 +8747,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8775,13 +8775,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8803,12 +8803,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8828,12 +8828,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8855,12 +8855,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8882,12 +8882,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8909,12 +8909,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8936,12 +8936,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8961,12 +8961,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8988,12 +8988,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9015,12 +9015,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9042,12 +9042,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES30.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9499,7 +9499,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -9512,7 +9512,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -9525,7 +9525,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -9538,7 +9538,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -9551,7 +9551,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -9564,7 +9564,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate mipmaps for a specified texture target
@@ -9603,7 +9603,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9616,7 +9616,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9629,7 +9629,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9642,7 +9642,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9655,7 +9655,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9668,7 +9668,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9688,7 +9688,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9701,7 +9701,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9714,7 +9714,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9727,7 +9727,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9740,7 +9740,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9753,7 +9753,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9773,7 +9773,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9786,7 +9786,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9799,7 +9799,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9812,7 +9812,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9825,7 +9825,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9838,7 +9838,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9858,7 +9858,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] Int32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9871,7 +9871,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out Int32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9884,7 +9884,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9897,7 +9897,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9910,7 +9910,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out UInt32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9923,7 +9923,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9943,7 +9943,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9956,7 +9956,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9969,7 +9969,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9982,7 +9982,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9995,7 +9995,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -10008,7 +10008,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10028,7 +10028,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10041,7 +10041,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10054,7 +10054,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10067,7 +10067,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10080,7 +10080,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -10093,7 +10093,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10113,7 +10113,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10126,7 +10126,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10139,7 +10139,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10152,7 +10152,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10165,7 +10165,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -10178,7 +10178,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10206,7 +10206,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10235,7 +10235,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10263,7 +10263,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10292,7 +10292,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10320,7 +10320,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10349,7 +10349,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10377,7 +10377,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -10406,7 +10406,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10434,7 +10434,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10463,7 +10463,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10491,7 +10491,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10520,7 +10520,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10548,7 +10548,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10577,7 +10577,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10605,7 +10605,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -10634,7 +10634,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10648,12 +10648,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10667,12 +10667,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10686,12 +10686,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10705,13 +10705,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10725,13 +10725,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10745,13 +10745,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10765,12 +10765,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10784,12 +10784,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10803,12 +10803,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10822,13 +10822,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10842,13 +10842,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -10862,13 +10862,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -10890,7 +10890,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -10912,7 +10912,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -10934,7 +10934,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -10956,7 +10956,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10973,12 +10973,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32[] uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10995,13 +10995,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32[] uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11018,12 +11018,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref Int32 uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11040,13 +11040,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref Int32 uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11063,12 +11063,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32* uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11085,13 +11085,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32* uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11108,12 +11108,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32[] uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11130,13 +11130,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32[] uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11153,12 +11153,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref UInt32 uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11175,13 +11175,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref UInt32 uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11198,12 +11198,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, OpenTK.Graphics.ES30.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -11220,13 +11220,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11245,7 +11245,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11264,7 +11264,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11283,7 +11283,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11302,7 +11302,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11321,7 +11321,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -11340,7 +11340,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the location of an attribute variable
@@ -11383,48 +11383,48 @@ namespace OpenTK.Graphics.ES30
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11435,13 +11435,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11452,13 +11452,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11469,13 +11469,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11486,12 +11486,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11502,12 +11502,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -11518,12 +11518,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11534,13 +11534,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11551,13 +11551,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11568,13 +11568,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11585,12 +11585,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11601,12 +11601,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -11617,12 +11617,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return the pointer to a mapped buffer object's data store
@@ -11638,7 +11638,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetBufferPointer(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return the pointer to a mapped buffer object's data store
@@ -11655,7 +11655,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11674,7 +11674,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11693,7 +11693,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11711,7 +11711,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T2 @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11728,7 +11728,7 @@ namespace OpenTK.Graphics.ES30
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetBufferPointer(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return the pointer to a mapped buffer object's data store
@@ -11744,7 +11744,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11762,7 +11762,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11780,7 +11780,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11797,7 +11797,7 @@ namespace OpenTK.Graphics.ES30
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute] ref T2 @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES30.BufferTarget target, OpenTK.Graphics.ES30.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -11831,7 +11831,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All[] sources, [OutAttribute] OpenTK.Graphics.ES30.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES30.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -11863,7 +11863,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.All sources, [OutAttribute] out OpenTK.Graphics.ES30.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES30.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -11895,7 +11895,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All* sources, [OutAttribute] OpenTK.Graphics.ES30.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES30.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -11926,7 +11926,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -11957,7 +11957,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -11988,7 +11988,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12020,7 +12020,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All[] sources, [OutAttribute] OpenTK.Graphics.ES30.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES30.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12052,7 +12052,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.All sources, [OutAttribute] out OpenTK.Graphics.ES30.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES30.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12084,7 +12084,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All* sources, [OutAttribute] OpenTK.Graphics.ES30.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES30.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12115,7 +12115,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12146,7 +12146,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -12177,7 +12177,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return error information
@@ -12200,48 +12200,48 @@ namespace OpenTK.Graphics.ES30
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -12249,12 +12249,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(Int32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -12262,12 +12262,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12281,13 +12281,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12301,13 +12301,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12321,13 +12321,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All attachment, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12341,12 +12341,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12360,12 +12360,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -12379,12 +12379,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES30.FramebufferTarget target, OpenTK.Graphics.ES30.FramebufferAttachment attachment, OpenTK.Graphics.ES30.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatus")]
@@ -12393,104 +12393,104 @@ namespace OpenTK.Graphics.ES30
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
@@ -12507,150 +12507,150 @@ namespace OpenTK.Graphics.ES30
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
@@ -12667,48 +12667,48 @@ namespace OpenTK.Graphics.ES30
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES30.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12731,7 +12731,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12754,7 +12754,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12777,7 +12777,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All internalformat, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12799,7 +12799,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12821,7 +12821,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -12843,7 +12843,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.ES30.ImageTarget target, OpenTK.Graphics.ES30.SizedInternalFormat internalformat, OpenTK.Graphics.ES30.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="program"></param>
@@ -13001,7 +13001,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13024,7 +13024,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13047,7 +13047,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13070,7 +13070,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13093,7 +13093,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13116,7 +13116,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13138,7 +13138,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13160,7 +13160,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13182,7 +13182,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13204,7 +13204,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13226,7 +13226,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -13248,7 +13248,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -13268,7 +13268,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -13288,7 +13288,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -13308,7 +13308,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -13328,7 +13328,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13350,7 +13350,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13372,7 +13372,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13394,7 +13394,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13416,7 +13416,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13438,7 +13438,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13460,7 +13460,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13482,7 +13482,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13504,7 +13504,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13526,7 +13526,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13548,7 +13548,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13570,7 +13570,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -13585,7 +13585,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -13599,7 +13599,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13615,7 +13615,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13631,7 +13631,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13646,7 +13646,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13660,7 +13660,7 @@ namespace OpenTK.Graphics.ES30
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES30.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES30.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -13673,7 +13673,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13688,7 +13688,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13703,7 +13703,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13717,7 +13717,7 @@ namespace OpenTK.Graphics.ES30
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES30.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -13741,7 +13741,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -13763,7 +13763,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13787,7 +13787,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13811,7 +13811,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13835,7 +13835,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13859,7 +13859,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -13881,7 +13881,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13905,7 +13905,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13929,7 +13929,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13953,7 +13953,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -13977,7 +13977,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -13999,7 +13999,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14023,7 +14023,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14047,7 +14047,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14071,7 +14071,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14095,7 +14095,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -14117,7 +14117,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14141,7 +14141,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14165,7 +14165,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14189,7 +14189,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -14210,7 +14210,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -14229,7 +14229,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -14248,7 +14248,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -14267,7 +14267,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14278,13 +14278,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14295,13 +14295,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14312,13 +14312,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14329,12 +14329,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14345,12 +14345,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14361,12 +14361,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14377,13 +14377,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14394,13 +14394,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14411,13 +14411,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14428,12 +14428,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14444,12 +14444,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -14460,12 +14460,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES30.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14476,13 +14476,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14493,13 +14493,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14510,13 +14510,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQuery(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14527,12 +14527,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14543,12 +14543,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -14559,12 +14559,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQuery(OpenTK.Graphics.ES30.QueryTarget target, OpenTK.Graphics.ES30.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14575,13 +14575,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14592,13 +14592,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14609,13 +14609,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14626,12 +14626,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14642,12 +14642,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14658,12 +14658,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14674,13 +14674,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14691,13 +14691,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14708,13 +14708,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14725,12 +14725,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14741,12 +14741,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -14757,12 +14757,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14773,13 +14773,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14790,13 +14790,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14807,13 +14807,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14824,12 +14824,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14840,12 +14840,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -14856,12 +14856,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES30.RenderbufferTarget target, OpenTK.Graphics.ES30.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14872,13 +14872,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14889,13 +14889,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14906,13 +14906,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14923,12 +14923,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14939,12 +14939,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14955,12 +14955,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14971,13 +14971,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -14988,13 +14988,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15005,13 +15005,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15022,12 +15022,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15038,12 +15038,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15054,12 +15054,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15070,13 +15070,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15087,13 +15087,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15104,13 +15104,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15121,12 +15121,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15137,12 +15137,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15153,12 +15153,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15169,13 +15169,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15186,13 +15186,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15203,13 +15203,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15220,12 +15220,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15236,12 +15236,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -15252,12 +15252,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -15276,7 +15276,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -15295,7 +15295,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -15314,7 +15314,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -15333,7 +15333,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15344,13 +15344,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15361,13 +15361,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15378,13 +15378,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15395,12 +15395,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15411,12 +15411,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15427,12 +15427,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15443,13 +15443,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15460,13 +15460,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15477,13 +15477,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15494,12 +15494,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15510,12 +15510,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -15526,12 +15526,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES30.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15551,7 +15551,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15571,7 +15571,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15591,7 +15591,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.All shadertype, OpenTK.Graphics.ES30.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15610,7 +15610,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15629,7 +15629,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -15648,7 +15648,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES30.ShaderType shadertype, OpenTK.Graphics.ES30.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -15667,7 +15667,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -15686,7 +15686,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -15705,7 +15705,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -15724,7 +15724,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a string describing the current GL connection
@@ -15820,7 +15820,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -15843,7 +15843,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -15866,7 +15866,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -15888,7 +15888,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -15910,7 +15910,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -15932,7 +15932,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES30.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -15943,13 +15943,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -15960,13 +15960,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -15977,13 +15977,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -15994,12 +15994,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16010,12 +16010,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16026,12 +16026,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16042,13 +16042,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16059,13 +16059,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16076,13 +16076,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16093,12 +16093,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16109,12 +16109,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -16125,12 +16125,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16159,7 +16159,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16187,7 +16187,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16216,7 +16216,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16244,7 +16244,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16273,7 +16273,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16301,7 +16301,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES30.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16330,7 +16330,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -16358,7 +16358,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES30.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16366,12 +16366,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(Int32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16379,12 +16379,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16395,12 +16395,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16411,12 +16411,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16427,12 +16427,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16443,12 +16443,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16459,12 +16459,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16475,12 +16475,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16491,15 +16491,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16510,15 +16510,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out Int32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out Int32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16529,15 +16529,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16548,15 +16548,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16567,15 +16567,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out UInt32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out UInt32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -16586,15 +16586,15 @@ namespace OpenTK.Graphics.ES30
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16605,12 +16605,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16621,12 +16621,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16637,12 +16637,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16653,12 +16653,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16669,12 +16669,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -16685,12 +16685,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the location of a uniform variable
@@ -16727,12 +16727,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns the value of a uniform variable
@@ -16743,12 +16743,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns the value of a uniform variable
@@ -16759,12 +16759,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16781,7 +16781,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16798,7 +16798,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16815,7 +16815,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16831,7 +16831,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16847,7 +16847,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16863,7 +16863,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16880,7 +16880,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16897,7 +16897,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16914,7 +16914,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16930,7 +16930,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16946,7 +16946,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -16962,7 +16962,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -16970,7 +16970,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -16978,7 +16978,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -16986,7 +16986,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -16994,7 +16994,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -17002,7 +17002,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -17010,7 +17010,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17027,7 +17027,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17044,7 +17044,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17061,7 +17061,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17077,7 +17077,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17093,7 +17093,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17109,7 +17109,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17126,7 +17126,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17143,7 +17143,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17160,7 +17160,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17176,7 +17176,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17192,7 +17192,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -17208,7 +17208,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES30.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -17225,7 +17225,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -17242,7 +17242,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17261,7 +17261,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17280,7 +17280,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17299,7 +17299,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17317,7 +17317,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -17333,7 +17333,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17351,7 +17351,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17369,7 +17369,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17387,7 +17387,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17406,7 +17406,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -17423,7 +17423,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17442,7 +17442,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17461,7 +17461,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17480,7 +17480,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17498,7 +17498,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -17514,7 +17514,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17532,7 +17532,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17550,7 +17550,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17568,7 +17568,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES30.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17612,7 +17612,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All[] attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All[] attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -17629,7 +17629,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, ref OpenTK.Graphics.ES30.All attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES30.All attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -17646,7 +17646,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All* attachments) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All* attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -17662,7 +17662,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.ES30.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -17678,7 +17678,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.ES30.FramebufferAttachment attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES30.FramebufferAttachment attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -17694,7 +17694,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.ES30.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17723,7 +17723,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17752,7 +17752,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, ref OpenTK.Graphics.ES30.All attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES30.All attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17781,7 +17781,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17809,7 +17809,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.ES30.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17837,7 +17837,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.ES30.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES30.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -17865,7 +17865,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.ES30.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES30.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Determine if a name corresponds to a buffer object
@@ -18210,13 +18210,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -18230,13 +18230,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -18250,12 +18250,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -18269,12 +18269,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -18285,11 +18285,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -18300,12 +18300,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -18318,12 +18318,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -18336,12 +18336,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -18354,11 +18354,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -18428,7 +18428,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Load a program object with a program binary
@@ -18447,7 +18447,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18468,7 +18468,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18489,7 +18489,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18510,7 +18510,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18531,7 +18531,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Load a program object with a program binary
@@ -18550,7 +18550,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18571,7 +18571,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18592,7 +18592,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18613,7 +18613,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -18695,12 +18695,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES30.All source, Int32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES30.All source, Int32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Push a named debug group into the command stream
@@ -18714,12 +18714,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES30.All source, UInt32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES30.All source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Select a color buffer source for pixels
@@ -18908,12 +18908,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -18936,13 +18936,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18967,13 +18967,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18998,13 +18998,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19029,12 +19029,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19059,11 +19059,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -19086,12 +19086,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19116,12 +19116,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19146,12 +19146,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19176,11 +19176,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19363,13 +19363,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19380,13 +19380,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19397,12 +19397,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19413,12 +19413,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19429,13 +19429,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19446,13 +19446,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19463,12 +19463,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19479,12 +19479,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19561,13 +19561,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19578,13 +19578,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19595,12 +19595,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19611,12 +19611,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19627,13 +19627,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19644,13 +19644,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19661,12 +19661,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19677,12 +19677,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES30.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define the scissor box
@@ -19723,7 +19723,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19746,7 +19746,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19771,7 +19771,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19796,7 +19796,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19821,7 +19821,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19845,7 +19845,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19867,7 +19867,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19891,7 +19891,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19915,7 +19915,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19939,7 +19939,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19964,7 +19964,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19987,7 +19987,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20012,7 +20012,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20037,7 +20037,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20062,7 +20062,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20086,7 +20086,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20108,7 +20108,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20132,7 +20132,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20156,7 +20156,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20180,7 +20180,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20205,7 +20205,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20228,7 +20228,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20253,7 +20253,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20278,7 +20278,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20303,7 +20303,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20327,7 +20327,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20349,7 +20349,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20373,7 +20373,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20397,7 +20397,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20421,7 +20421,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20446,7 +20446,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20469,7 +20469,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20494,7 +20494,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20519,7 +20519,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20544,7 +20544,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20568,7 +20568,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20590,7 +20590,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20614,7 +20614,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20638,7 +20638,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20662,7 +20662,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20687,7 +20687,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20710,7 +20710,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20735,7 +20735,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20760,7 +20760,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20785,7 +20785,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20809,7 +20809,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20831,7 +20831,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20855,7 +20855,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20879,7 +20879,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20903,7 +20903,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20928,7 +20928,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -20951,7 +20951,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -20976,7 +20976,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21001,7 +21001,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21026,7 +21026,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21050,7 +21050,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -21072,7 +21072,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21096,7 +21096,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21120,7 +21120,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21144,7 +21144,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES30.ShaderBinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -21165,7 +21165,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -21184,7 +21184,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -21203,7 +21203,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -21222,7 +21222,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -21241,7 +21241,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -21260,7 +21260,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set front and back function and reference value for stencil testing
@@ -21575,12 +21575,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -21609,13 +21609,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21646,13 +21646,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21683,13 +21683,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21720,12 +21720,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21756,11 +21756,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -21789,12 +21789,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21825,12 +21825,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21861,12 +21861,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21897,11 +21897,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21935,12 +21935,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image
@@ -21972,13 +21972,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22012,13 +22012,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22052,13 +22052,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22092,12 +22092,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22131,11 +22131,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image
@@ -22167,12 +22167,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22206,12 +22206,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22245,12 +22245,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22284,11 +22284,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -22332,13 +22332,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22349,13 +22349,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22366,12 +22366,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22382,12 +22382,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22429,13 +22429,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22446,13 +22446,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22463,12 +22463,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -22479,12 +22479,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Simultaneously specify storage for all levels of a two-dimensional texture
@@ -22605,12 +22605,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -22639,13 +22639,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22676,13 +22676,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22713,13 +22713,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22750,12 +22750,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22786,11 +22786,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -22819,12 +22819,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22855,12 +22855,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22891,12 +22891,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22927,11 +22927,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES30.TextureTarget2d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -22968,12 +22968,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage
@@ -23008,13 +23008,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23051,13 +23051,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23094,13 +23094,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23137,12 +23137,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23179,11 +23179,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage
@@ -23218,12 +23218,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23260,12 +23260,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23302,12 +23302,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23344,11 +23344,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -23370,7 +23370,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES30.All bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES30.All bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify values to record in transform feedback buffers
@@ -23389,7 +23389,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES30.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES30.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify values to record in transform feedback buffers
@@ -23409,7 +23409,7 @@ namespace OpenTK.Graphics.ES30
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES30.All bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES30.All bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify values to record in transform feedback buffers
@@ -23428,7 +23428,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES30.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES30.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23456,7 +23456,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23472,7 +23472,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23488,7 +23488,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23516,7 +23516,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23532,7 +23532,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23548,7 +23548,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23577,7 +23577,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23593,7 +23593,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23609,7 +23609,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23640,7 +23640,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23656,7 +23656,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23672,7 +23672,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23703,7 +23703,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23719,7 +23719,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23751,7 +23751,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23767,7 +23767,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23783,7 +23783,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23817,7 +23817,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23833,7 +23833,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23849,7 +23849,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23883,7 +23883,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23899,7 +23899,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23915,7 +23915,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23950,7 +23950,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23966,7 +23966,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -23982,7 +23982,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24019,7 +24019,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24035,7 +24035,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24051,7 +24051,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24088,7 +24088,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24104,7 +24104,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24120,7 +24120,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24158,7 +24158,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24174,7 +24174,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -24190,7 +24190,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Assign a binding point to an active uniform block
@@ -24231,7 +24231,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24240,7 +24240,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24249,7 +24249,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24258,7 +24258,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24267,7 +24267,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24276,7 +24276,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24285,7 +24285,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24294,7 +24294,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24303,7 +24303,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24312,7 +24312,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24321,7 +24321,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24330,7 +24330,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24339,7 +24339,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24348,7 +24348,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24357,7 +24357,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24366,7 +24366,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24375,7 +24375,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24384,7 +24384,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24393,7 +24393,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24402,7 +24402,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -24411,7 +24411,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24420,7 +24420,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24429,7 +24429,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24438,7 +24438,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24447,7 +24447,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24456,7 +24456,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -24465,7 +24465,7 @@ namespace OpenTK.Graphics.ES30
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
@@ -24555,7 +24555,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24568,7 +24568,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24613,7 +24613,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24626,7 +24626,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24639,7 +24639,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24652,7 +24652,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24665,7 +24665,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24678,7 +24678,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24729,7 +24729,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24742,7 +24742,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24755,7 +24755,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24768,7 +24768,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24781,7 +24781,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24794,7 +24794,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24851,7 +24851,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24864,7 +24864,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24877,7 +24877,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24890,7 +24890,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24903,7 +24903,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -24916,7 +24916,7 @@ namespace OpenTK.Graphics.ES30
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Modify the rate at which generic vertex attributes advance during instanced rendering
@@ -24969,42 +24969,42 @@ namespace OpenTK.Graphics.ES30
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -25021,43 +25021,43 @@ namespace OpenTK.Graphics.ES30
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25066,11 +25066,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25079,11 +25079,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25092,11 +25092,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25105,20 +25105,20 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25127,10 +25127,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25139,10 +25139,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25151,10 +25151,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25163,22 +25163,22 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25187,11 +25187,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25200,11 +25200,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25213,11 +25213,11 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25226,20 +25226,20 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25248,10 +25248,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25260,10 +25260,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25272,10 +25272,10 @@ namespace OpenTK.Graphics.ES30
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25297,13 +25297,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -25323,13 +25323,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25351,13 +25351,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25379,13 +25379,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25407,13 +25407,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25435,12 +25435,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -25460,12 +25460,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25487,12 +25487,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25514,12 +25514,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25541,12 +25541,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25568,13 +25568,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -25594,13 +25594,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25622,13 +25622,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25650,13 +25650,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25678,13 +25678,13 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25706,12 +25706,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -25731,12 +25731,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25758,12 +25758,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25785,12 +25785,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -25812,12 +25812,12 @@ namespace OpenTK.Graphics.ES30
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES30.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -26399,7 +26399,7 @@ namespace OpenTK.Graphics.ES30
             /// Specifies the address of an array of pointers to source code strings from which to create the program object.
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glCreateShaderProgramvEXT")]
-            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES30.All type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES30.All type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26409,7 +26409,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26419,7 +26419,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26432,7 +26432,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26445,7 +26445,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26458,7 +26458,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26471,7 +26471,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26484,7 +26484,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -26497,7 +26497,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26507,7 +26507,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26517,7 +26517,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26530,7 +26530,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26543,7 +26543,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26556,7 +26556,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26569,7 +26569,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26582,7 +26582,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -26595,7 +26595,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_buffers_indexed]</summary>
             /// <param name="target"></param>
@@ -26617,7 +26617,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All[] attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All[] attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -26625,7 +26625,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, ref OpenTK.Graphics.ES30.All attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES30.All attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -26633,7 +26633,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, OpenTK.Graphics.ES30.All* attachments) { throw new NotImplementedException(); }
+            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES30.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES30.All* attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a range of elements
@@ -26759,7 +26759,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES30.All[] location, Int32[] indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All[] location, [CountAttribute(Parameter = "n")] Int32[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -26767,7 +26767,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, ref OpenTK.Graphics.ES30.All location, ref Int32 indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES30.All location, [CountAttribute(Parameter = "n")] ref Int32 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -26775,7 +26775,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES30.All* location, Int32* indices) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All* location, [CountAttribute(Parameter = "n")] Int32* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -26789,7 +26789,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26797,7 +26797,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -26811,7 +26811,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26820,7 +26820,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26836,7 +26836,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26845,7 +26845,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26861,7 +26861,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26870,7 +26870,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26886,7 +26886,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26894,7 +26894,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26910,14 +26910,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -26931,7 +26931,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26939,7 +26939,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26955,7 +26955,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26963,7 +26963,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -26979,7 +26979,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -26987,7 +26987,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27003,14 +27003,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27227,7 +27227,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -27240,7 +27240,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -27253,7 +27253,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -27266,7 +27266,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -27279,7 +27279,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -27292,7 +27292,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27312,7 +27312,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27325,7 +27325,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27338,7 +27338,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27351,7 +27351,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27364,7 +27364,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -27377,7 +27377,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusEXT")]
@@ -27492,7 +27492,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27501,7 +27501,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27510,7 +27510,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27519,7 +27519,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27528,7 +27528,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27537,7 +27537,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27546,7 +27546,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27555,7 +27555,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27564,7 +27564,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27573,7 +27573,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27582,7 +27582,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -27591,7 +27591,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27613,7 +27613,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27635,7 +27635,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27657,7 +27657,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27679,7 +27679,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27701,7 +27701,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -27723,7 +27723,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27743,7 +27743,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27763,7 +27763,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27783,7 +27783,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27803,7 +27803,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27823,7 +27823,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -27843,7 +27843,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve properties of a program pipeline object
@@ -28001,13 +28001,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28018,13 +28018,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28035,13 +28035,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28052,12 +28052,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28068,12 +28068,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28084,12 +28084,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28100,13 +28100,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28117,13 +28117,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28134,13 +28134,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28151,12 +28151,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28167,12 +28167,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28183,12 +28183,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28397,13 +28397,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28414,13 +28414,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28431,13 +28431,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28448,12 +28448,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28464,12 +28464,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -28480,12 +28480,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES30.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Return parameters of a query object
@@ -28589,176 +28589,176 @@ namespace OpenTK.Graphics.ES30
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -29012,10 +29012,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29024,7 +29024,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -29032,10 +29032,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29044,7 +29044,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -29052,10 +29052,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29064,7 +29064,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -29072,10 +29072,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29083,7 +29083,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -29091,10 +29091,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29102,7 +29102,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -29110,10 +29110,10 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -29121,7 +29121,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29129,13 +29129,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29144,7 +29144,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES30.All mode, Int32[] count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29152,13 +29152,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29167,7 +29167,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29177,13 +29177,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29192,7 +29192,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29202,13 +29202,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29217,7 +29217,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29227,13 +29227,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29242,7 +29242,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29252,13 +29252,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29267,7 +29267,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES30.All mode, ref Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29275,13 +29275,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29290,7 +29290,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29300,13 +29300,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29315,7 +29315,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29325,13 +29325,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29340,7 +29340,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29350,13 +29350,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29365,7 +29365,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29375,13 +29375,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29390,7 +29390,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES30.All mode, Int32* count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29398,13 +29398,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29413,7 +29413,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29423,13 +29423,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29438,7 +29438,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29448,13 +29448,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29463,7 +29463,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29473,13 +29473,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29488,7 +29488,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29498,13 +29498,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29512,7 +29512,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29520,13 +29520,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29534,7 +29534,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29544,13 +29544,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29558,7 +29558,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29568,13 +29568,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29582,7 +29582,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29592,13 +29592,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29606,7 +29606,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29616,13 +29616,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29630,7 +29630,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29638,13 +29638,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29652,7 +29652,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29662,13 +29662,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29676,7 +29676,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29686,13 +29686,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29700,7 +29700,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29710,13 +29710,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29724,7 +29724,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29734,13 +29734,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29748,7 +29748,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -29756,13 +29756,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29770,7 +29770,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29780,13 +29780,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29794,7 +29794,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29804,13 +29804,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29818,7 +29818,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29828,13 +29828,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -29842,7 +29842,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -29989,7 +29989,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30008,7 +30008,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30027,7 +30027,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30046,7 +30046,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30065,7 +30065,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30084,7 +30084,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30135,7 +30135,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30154,7 +30154,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30173,7 +30173,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30192,7 +30192,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30211,7 +30211,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30230,7 +30230,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30265,7 +30265,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30284,7 +30284,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30303,7 +30303,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30360,7 +30360,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30379,7 +30379,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30398,7 +30398,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30417,7 +30417,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30436,7 +30436,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30455,7 +30455,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30512,7 +30512,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30531,7 +30531,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30550,7 +30550,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30569,7 +30569,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30607,7 +30607,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30626,7 +30626,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30645,7 +30645,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30708,7 +30708,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30727,7 +30727,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30746,7 +30746,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30765,7 +30765,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30784,7 +30784,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30803,7 +30803,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30866,7 +30866,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30885,7 +30885,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30904,7 +30904,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30923,7 +30923,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30942,7 +30942,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -30961,7 +30961,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31002,7 +31002,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31021,7 +31021,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31040,7 +31040,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31109,7 +31109,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31128,7 +31128,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31147,7 +31147,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31166,7 +31166,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31185,7 +31185,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31204,7 +31204,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31273,7 +31273,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31292,7 +31292,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31311,7 +31311,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31330,7 +31330,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31349,7 +31349,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31368,7 +31368,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31412,7 +31412,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31431,7 +31431,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -31450,7 +31450,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31460,7 +31460,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31470,7 +31470,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31480,7 +31480,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31490,7 +31490,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31500,7 +31500,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31510,7 +31510,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31520,7 +31520,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31530,7 +31530,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31540,7 +31540,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31550,7 +31550,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31560,7 +31560,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31570,7 +31570,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31580,7 +31580,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31590,7 +31590,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31600,7 +31600,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31610,7 +31610,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31620,7 +31620,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31630,7 +31630,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31640,7 +31640,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31650,7 +31650,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31660,7 +31660,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31670,7 +31670,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31680,7 +31680,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31690,7 +31690,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31700,7 +31700,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31710,7 +31710,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31720,7 +31720,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31730,7 +31730,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31740,7 +31740,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31750,7 +31750,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31760,7 +31760,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31770,7 +31770,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31780,7 +31780,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31790,7 +31790,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31800,7 +31800,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31810,7 +31810,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31820,7 +31820,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31830,7 +31830,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31840,7 +31840,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31850,7 +31850,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31860,7 +31860,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31870,7 +31870,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31880,7 +31880,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31890,7 +31890,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31900,7 +31900,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31910,7 +31910,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31920,7 +31920,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31930,7 +31930,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31940,7 +31940,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31950,7 +31950,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31960,7 +31960,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31970,7 +31970,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31980,7 +31980,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -31990,7 +31990,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -32041,7 +32041,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -32055,7 +32055,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32071,7 +32071,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32087,7 +32087,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32102,7 +32102,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32116,7 +32116,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -32129,7 +32129,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32144,7 +32144,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32159,7 +32159,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32173,7 +32173,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32223,74 +32223,74 @@ namespace OpenTK.Graphics.ES30
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, UInt32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, ref UInt32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, UInt32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_buffer]
             /// Attach the storage for a buffer object to the active buffer texture
@@ -32449,104 +32449,104 @@ namespace OpenTK.Graphics.ES30
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.All target, OpenTK.Graphics.ES30.All pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES30.TextureTarget target, OpenTK.Graphics.ES30.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_storage]
             /// Simultaneously specify storage for all levels of a one-dimensional texture
@@ -34205,7 +34205,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All[] sources, [OutAttribute] OpenTK.Graphics.ES30.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES30.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34237,7 +34237,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.All sources, [OutAttribute] out OpenTK.Graphics.ES30.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES30.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34269,7 +34269,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All* sources, [OutAttribute] OpenTK.Graphics.ES30.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES30.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34300,7 +34300,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34331,7 +34331,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34362,7 +34362,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34394,7 +34394,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All[] sources, [OutAttribute] OpenTK.Graphics.ES30.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES30.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34426,7 +34426,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.All sources, [OutAttribute] out OpenTK.Graphics.ES30.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES30.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34458,7 +34458,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.All* sources, [OutAttribute] OpenTK.Graphics.ES30.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES30.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34489,7 +34489,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34520,7 +34520,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSourceExternal sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES30.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -34551,7 +34551,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSourceExternal* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES30.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusKHR")]
@@ -34713,7 +34713,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34736,7 +34736,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34759,7 +34759,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34782,7 +34782,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34805,7 +34805,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34828,7 +34828,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34850,7 +34850,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34872,7 +34872,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34894,7 +34894,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34916,7 +34916,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34938,7 +34938,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -34960,7 +34960,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES30.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -34980,7 +34980,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -35000,7 +35000,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -35020,7 +35020,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -35040,7 +35040,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35062,7 +35062,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35084,7 +35084,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35106,7 +35106,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35128,7 +35128,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35150,7 +35150,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35172,7 +35172,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35194,7 +35194,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35216,7 +35216,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35238,7 +35238,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35260,7 +35260,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35282,7 +35282,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -35546,7 +35546,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -35560,7 +35560,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35576,7 +35576,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35592,7 +35592,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35607,7 +35607,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35621,7 +35621,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -35634,7 +35634,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35649,7 +35649,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35664,7 +35664,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35678,7 +35678,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -35869,55 +35869,55 @@ namespace OpenTK.Graphics.ES30
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a range of elements
@@ -35968,7 +35968,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.All[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -35982,7 +35982,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES30.All bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES30.All bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -35996,7 +35996,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.All* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.All* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -36009,7 +36009,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -36022,7 +36022,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES30.DrawBufferMode bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES30.DrawBufferMode bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -36035,7 +36035,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES30.DrawBufferMode* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES30.DrawBufferMode* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -36049,7 +36049,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36057,7 +36057,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -36071,7 +36071,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36080,7 +36080,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36096,7 +36096,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36105,7 +36105,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36121,7 +36121,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36130,7 +36130,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36146,7 +36146,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36154,7 +36154,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.All mode, Int32 count, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36170,14 +36170,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -36191,7 +36191,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36199,7 +36199,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36215,7 +36215,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36223,7 +36223,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36239,7 +36239,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -36247,7 +36247,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36263,14 +36263,14 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES30.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES30.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -36296,90 +36296,90 @@ namespace OpenTK.Graphics.ES30
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES30.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
@@ -36478,7 +36478,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36487,7 +36487,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36496,7 +36496,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36505,7 +36505,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36514,7 +36514,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36523,7 +36523,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36532,7 +36532,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36541,7 +36541,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36550,7 +36550,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36559,7 +36559,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36568,7 +36568,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36577,7 +36577,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36586,7 +36586,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36595,7 +36595,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36604,7 +36604,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36613,7 +36613,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36622,7 +36622,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -36631,7 +36631,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_instanced_arrays]
             /// Modify the rate at which generic vertex attributes advance during instanced rendering
@@ -36715,7 +36715,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image in a compressed format
@@ -36750,7 +36750,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -36787,7 +36787,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -36824,7 +36824,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -36860,7 +36860,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -36895,7 +36895,7 @@ namespace OpenTK.Graphics.ES30
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image in a compressed format
@@ -36929,7 +36929,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -36965,7 +36965,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -37001,7 +37001,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -37036,7 +37036,7 @@ namespace OpenTK.Graphics.ES30
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.CompressedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -37078,7 +37078,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -37119,7 +37119,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37162,7 +37162,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37205,7 +37205,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37247,7 +37247,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37288,7 +37288,7 @@ namespace OpenTK.Graphics.ES30
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -37328,7 +37328,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37370,7 +37370,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37412,7 +37412,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37453,7 +37453,7 @@ namespace OpenTK.Graphics.ES30
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -37532,7 +37532,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37542,7 +37542,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37555,7 +37555,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37568,7 +37568,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37581,7 +37581,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37594,7 +37594,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37607,7 +37607,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -37620,7 +37620,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_EGL_image]</summary>
             /// <param name="target"></param>
@@ -37674,7 +37674,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -37687,7 +37687,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -37700,7 +37700,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -37713,7 +37713,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -37726,7 +37726,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -37739,7 +37739,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_mapbuffer]</summary>
             /// <param name="target"></param>
@@ -37859,7 +37859,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -37882,7 +37882,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -37907,7 +37907,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -37932,7 +37932,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -37957,7 +37957,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -37982,7 +37982,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -38005,7 +38005,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38030,7 +38030,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38055,7 +38055,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38080,7 +38080,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38105,7 +38105,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -38128,7 +38128,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38153,7 +38153,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38178,7 +38178,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38203,7 +38203,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38228,7 +38228,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -38251,7 +38251,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38276,7 +38276,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38301,7 +38301,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38326,7 +38326,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38351,7 +38351,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -38374,7 +38374,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38399,7 +38399,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38424,7 +38424,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38449,7 +38449,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38474,7 +38474,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -38497,7 +38497,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38522,7 +38522,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38547,7 +38547,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38572,7 +38572,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES30.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -38634,7 +38634,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -38653,7 +38653,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38674,7 +38674,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38695,7 +38695,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38716,7 +38716,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38737,7 +38737,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -38756,7 +38756,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38777,7 +38777,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38798,7 +38798,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38819,7 +38819,7 @@ namespace OpenTK.Graphics.ES30
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES30.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -38853,12 +38853,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -38890,13 +38890,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -38930,13 +38930,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -38970,13 +38970,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39010,12 +39010,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.All target, Int32 level, OpenTK.Graphics.ES30.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39049,11 +39049,11 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -39085,12 +39085,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39124,12 +39124,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39163,12 +39163,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39202,11 +39202,11 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, OpenTK.Graphics.ES30.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES30.PixelFormat format, OpenTK.Graphics.ES30.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -39270,12 +39270,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage
@@ -39310,13 +39310,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39353,13 +39353,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39396,13 +39396,13 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39439,12 +39439,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39481,11 +39481,11 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage
@@ -39520,12 +39520,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39562,12 +39562,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39604,12 +39604,12 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39646,11 +39646,11 @@ namespace OpenTK.Graphics.ES30
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES30.TextureTarget3d target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES30.All format, OpenTK.Graphics.ES30.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -39765,7 +39765,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39773,7 +39773,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39782,7 +39782,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out Int32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out Int32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39791,7 +39791,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] Int32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39800,7 +39800,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39808,7 +39808,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39817,7 +39817,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out UInt32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out UInt32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -39826,7 +39826,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39835,7 +39835,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39843,7 +39843,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39852,7 +39852,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39861,7 +39861,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39870,7 +39870,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39878,7 +39878,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39887,7 +39887,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -39896,7 +39896,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="program"></param>
@@ -39959,7 +39959,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -39967,7 +39967,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -39976,7 +39976,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out Int32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out Int32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -39985,7 +39985,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] Int32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -39994,7 +39994,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -40002,7 +40002,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -40011,7 +40011,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out UInt32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out UInt32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -40020,7 +40020,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40029,7 +40029,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40037,7 +40037,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40046,7 +40046,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40055,7 +40055,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40064,7 +40064,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40072,7 +40072,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40081,7 +40081,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -40090,7 +40090,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40099,7 +40099,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40107,7 +40107,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40116,7 +40116,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out Int32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out Int32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40125,7 +40125,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] Int32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40134,7 +40134,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40142,7 +40142,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40151,7 +40151,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out UInt32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out UInt32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -40160,7 +40160,7 @@ namespace OpenTK.Graphics.ES30
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="texture"></param>
@@ -40381,7 +40381,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] Int32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -40389,7 +40389,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] UInt32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -40397,7 +40397,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out Int32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -40405,7 +40405,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out UInt32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out UInt32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -40413,7 +40413,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] Int32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -40421,7 +40421,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40430,7 +40430,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40439,7 +40439,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40448,7 +40448,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40457,7 +40457,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40466,7 +40466,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -40475,7 +40475,7 @@ namespace OpenTK.Graphics.ES30
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_tiled_rendering]</summary>
             /// <param name="x"></param>
@@ -40504,34 +40504,34 @@ namespace OpenTK.Graphics.ES30
         private static extern void glBeginPerfMonitorAMD(UInt32 monitor);
         [Slot(85)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, UInt32* monitors);
+        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(130)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEndPerfMonitorAMD(UInt32 monitor);
         [Slot(167)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute] UInt32* monitors);
+        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(224)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten);
+        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute] IntPtr data);
+        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data);
         [Slot(226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters);
+        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters);
         [Slot(227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr counterString);
+        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr counterString);
         [Slot(228)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups);
+        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups);
         [Slot(229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr groupString);
+        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr groupString);
         [Slot(387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList);
+        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList);
         [Slot(36)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlitFramebufferANGLE(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
@@ -40540,10 +40540,10 @@ namespace OpenTK.Graphics.ES30
         private static extern void glDrawArraysInstancedANGLE(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(120)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] IntPtr source);
         [Slot(372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleANGLE(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
@@ -40567,7 +40567,7 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glGetInteger64vAPPLE(System.Int32 pname, [OutAttribute] Int64* @params);
         [Slot(260)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsSyncAPPLE(IntPtr sync);
@@ -40642,10 +40642,10 @@ namespace OpenTK.Graphics.ES30
         private static extern void glBlitFramebuffer(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
         [Slot(38)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(39)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(40)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glCheckFramebufferStatus(System.Int32 target);
@@ -40657,13 +40657,13 @@ namespace OpenTK.Graphics.ES30
         private static extern void glClearBufferfi(System.Int32 buffer, Int32 drawbuffer, Single depth, Int32 stencil);
         [Slot(43)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, Single* value);
+        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value);
         [Slot(44)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, Int32* value);
+        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value);
         [Slot(45)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, UInt32* value);
+        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value);
         [Slot(46)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearColor(Single red, Single green, Single blue, Single alpha);
@@ -40684,16 +40684,16 @@ namespace OpenTK.Graphics.ES30
         private static extern void glCompileShader(UInt32 shader);
         [Slot(54)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(55)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(57)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(58)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(60)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyBufferSubData(System.Int32 readTarget, System.Int32 writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
@@ -40720,28 +40720,28 @@ namespace OpenTK.Graphics.ES30
         private static extern void glDebugMessageCallback(DebugProc callback, IntPtr userParam);
         [Slot(78)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(80)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Computed = "buf,length")] IntPtr buf);
         [Slot(82)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(84)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffers(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(87)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteProgram(UInt32 program);
         [Slot(89)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueries(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(91)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffers(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(92)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteSamplers(Int32 count, UInt32* samplers);
+        private static extern unsafe void glDeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(93)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteShader(UInt32 shader);
@@ -40750,13 +40750,13 @@ namespace OpenTK.Graphics.ES30
         private static extern void glDeleteSync(IntPtr sync);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArrays(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -40783,16 +40783,16 @@ namespace OpenTK.Graphics.ES30
         private static extern void glDrawArraysInstanced(System.Int32 mode, Int32 first, Int32 count, Int32 instancecount);
         [Slot(114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffers(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(118)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(119)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount);
+        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount);
         [Slot(123)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(126)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnable(System.Int32 cap);
@@ -40831,97 +40831,97 @@ namespace OpenTK.Graphics.ES30
         private static extern void glFrontFace(System.Int32 mode);
         [Slot(163)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(164)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGenerateMipmap(System.Int32 target);
         [Slot(166)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(169)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(171)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(172)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute] UInt32* samplers);
+        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params);
         [Slot(180)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformBlockName);
+        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformBlockName);
         [Slot(181)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params);
         [Slot(182)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders);
+        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders);
         [Slot(183)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocation(UInt32 program, IntPtr name);
         [Slot(184)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(185)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(186)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(187)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(189)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(193)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
         [Slot(196)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(197)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetFragDataLocation(UInt32 program, IntPtr name);
+        private static extern Int32 glGetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(198)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(199)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatus();
         [Slot(202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data);
         [Slot(203)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data);
         [Slot(205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data);
         [Slot(207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetnUniformfv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
@@ -40933,49 +40933,49 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glGetnUniformuiv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(218)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(237)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(238)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(246)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision);
+        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision);
         [Slot(256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr source);
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
@@ -40984,58 +40984,58 @@ namespace OpenTK.Graphics.ES30
         private static extern IntPtr glGetStringi(System.Int32 name, UInt32 index);
         [Slot(259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(261)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(264)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetUniformBlockIndex(UInt32 program, IntPtr uniformBlockName);
+        private static extern Int32 glGetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] IntPtr uniformBlockName);
         [Slot(268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, IntPtr uniformNames, [OutAttribute] UInt32* uniformIndices);
+        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] IntPtr uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices);
         [Slot(270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocation(UInt32 program, IntPtr name);
         [Slot(272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params);
         [Slot(273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
         [Slot(280)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
+        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsBuffer(UInt32 buffer);
@@ -41083,10 +41083,10 @@ namespace OpenTK.Graphics.ES30
         private static extern IntPtr glMapBufferRange(System.Int32 target, IntPtr offset, IntPtr length, System.Int32 access);
         [Slot(309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, IntPtr label);
+        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(311)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, IntPtr label);
+        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(314)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPauseTransformFeedback();
@@ -41101,13 +41101,13 @@ namespace OpenTK.Graphics.ES30
         private static extern void glPopDebugGroup();
         [Slot(321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteri(UInt32 program, System.Int32 pname, Int32 value);
         [Slot(358)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
+        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] IntPtr message);
         [Slot(362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReadBuffer(System.Int32 src);
@@ -41116,7 +41116,7 @@ namespace OpenTK.Graphics.ES30
         private static extern void glReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
         [Slot(368)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReleaseShaderCompiler();
@@ -41137,22 +41137,22 @@ namespace OpenTK.Graphics.ES30
         private static extern void glSamplerParameterf(UInt32 sampler, System.Int32 pname, Single param);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, Single* param);
+        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* param);
         [Slot(382)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSamplerParameteri(UInt32 sampler, System.Int32 pname, Int32 param);
         [Slot(385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScissor(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(389)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderBinary(Int32 count, UInt32* shaders, System.Int32 binaryformat, IntPtr binary, Int32 length);
+        private static extern unsafe void glShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, System.Int32 binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilFunc(System.Int32 func, Int32 @ref, UInt32 mask);
@@ -41173,22 +41173,22 @@ namespace OpenTK.Graphics.ES30
         private static extern void glStencilOpSeparate(System.Int32 face, System.Int32 sfail, System.Int32 dpfail, System.Int32 dppass);
         [Slot(401)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(404)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(405)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(409)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(411)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage2D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width, Int32 height);
@@ -41197,115 +41197,115 @@ namespace OpenTK.Graphics.ES30
         private static extern void glTexStorage3D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth);
         [Slot(416)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(417)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(423)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, IntPtr varyings, System.Int32 bufferMode);
+        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] IntPtr varyings, System.Int32 bufferMode);
         [Slot(424)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1f(Int32 location, Single v0);
         [Slot(425)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(426)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i(Int32 location, Int32 v0);
         [Slot(427)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(428)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1ui(Int32 location, UInt32 v0);
         [Slot(429)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value);
         [Slot(430)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2f(Int32 location, Single v0, Single v1);
         [Slot(431)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(432)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i(Int32 location, Int32 v0, Int32 v1);
         [Slot(433)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(434)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2ui(Int32 location, UInt32 v0, UInt32 v1);
         [Slot(435)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(436)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3f(Int32 location, Single v0, Single v1, Single v2);
         [Slot(437)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(438)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(439)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(440)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(441)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(442)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4f(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(443)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(444)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(445)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(446)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(447)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(448)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding);
         [Slot(449)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(450)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(452)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(454)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(455)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(457)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(459)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(460)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(462)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(464)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBuffer(System.Int32 target);
@@ -41320,25 +41320,25 @@ namespace OpenTK.Graphics.ES30
         private static extern void glVertexAttrib1f(UInt32 index, Single x);
         [Slot(472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fv(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(473)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2f(UInt32 index, Single x, Single y);
         [Slot(474)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fv(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(475)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3f(UInt32 index, Single x, Single y, Single z);
         [Slot(476)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fv(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4f(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(478)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(479)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribDivisor(UInt32 index, UInt32 divisor);
@@ -41347,19 +41347,19 @@ namespace OpenTK.Graphics.ES30
         private static extern void glVertexAttribI4i(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(484)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(485)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(486)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(487)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(488)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(489)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewport(Int32 x, Int32 y, Int32 width, Int32 height);
@@ -41404,19 +41404,19 @@ namespace OpenTK.Graphics.ES30
         private static extern Int32 glCreateShaderProgramEXT(System.Int32 type, IntPtr @string);
         [Slot(74)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(88)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(90)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueriesEXT(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueriesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(106)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDisableiEXT(System.Int32 target, UInt32 index);
         [Slot(108)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(112)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedEXT(System.Int32 mode, Int32 start, Int32 count, Int32 primcount);
@@ -41425,10 +41425,10 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glDrawBuffersEXT(Int32 n, System.Int32* bufs);
         [Slot(116)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, System.Int32* location, Int32* indices);
+        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* location, [CountAttribute(Parameter = "n")] Int32* indices);
         [Slot(121)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(128)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableiEXT(System.Int32 target, UInt32 index);
@@ -41446,10 +41446,10 @@ namespace OpenTK.Graphics.ES30
         private static extern void glFramebufferTextureEXT(System.Int32 target, System.Int32 attachment, UInt32 texture, Int32 level);
         [Slot(168)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(170)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusEXT();
@@ -41458,16 +41458,16 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glGetIntegeri_vEXT(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(219)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(240)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetProgramPipelineivEXT(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -41476,28 +41476,28 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glGetQueryivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(244)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectivEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(245)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectuivEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
         [Slot(250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInsertEventMarkerEXT(Int32 length, IntPtr marker);
@@ -41518,10 +41518,10 @@ namespace OpenTK.Graphics.ES30
         private static extern IntPtr glMapBufferRangeEXT(System.Int32 target, IntPtr offset, IntPtr length, UInt32 access);
         [Slot(307)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount);
         [Slot(308)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount);
         [Slot(313)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPatchParameteriEXT(System.Int32 pname, Int32 value);
@@ -41539,100 +41539,100 @@ namespace OpenTK.Graphics.ES30
         private static extern void glProgramUniform1fEXT(UInt32 program, Int32 location, Single v0);
         [Slot(326)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(327)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1iEXT(UInt32 program, Int32 location, Int32 v0);
         [Slot(328)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value);
         [Slot(329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1uiEXT(UInt32 program, Int32 location, UInt32 v0);
         [Slot(330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value);
         [Slot(331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2fEXT(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(334)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(335)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(337)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(339)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(342)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(343)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(345)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(346)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(347)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(352)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(353)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(355)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(357)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPushGroupMarkerEXT(Int32 length, IntPtr marker);
@@ -41644,16 +41644,16 @@ namespace OpenTK.Graphics.ES30
         private static extern void glReadBufferIndexedEXT(System.Int32 src, Int32 index);
         [Slot(366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(374)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleEXT(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, UInt32* param);
+        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* param);
         [Slot(399)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexBufferEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer);
@@ -41662,10 +41662,10 @@ namespace OpenTK.Graphics.ES30
         private static extern void glTexBufferRangeEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(407)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(408)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(410)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage1DEXT(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width);
@@ -41749,7 +41749,7 @@ namespace OpenTK.Graphics.ES30
         private static extern void glDebugMessageInsertKHR(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
         [Slot(190)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(201)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusKHR();
@@ -41764,10 +41764,10 @@ namespace OpenTK.Graphics.ES30
         private static extern unsafe void glGetnUniformuivKHR(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(220)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetPointervKHR(System.Int32 pname, [OutAttribute] IntPtr @params);
@@ -41785,7 +41785,7 @@ namespace OpenTK.Graphics.ES30
         private static extern void glPushDebugGroupKHR(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
         [Slot(367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(23)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendBarrierNV();
@@ -41806,25 +41806,25 @@ namespace OpenTK.Graphics.ES30
         private static extern void glCoverageOperationNV(System.Int32 operation);
         [Slot(83)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesNV(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(113)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedNV(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(117)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersNV(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffersNV(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinishFenceNV(UInt32 fence);
         [Slot(165)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(194)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFenceNV(UInt32 fence);
@@ -41842,22 +41842,22 @@ namespace OpenTK.Graphics.ES30
         private static extern byte glTestFenceNV(UInt32 fence);
         [Slot(451)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(453)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(456)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(458)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(461)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(463)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(482)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribDivisorNV(UInt32 index, UInt32 divisor);
@@ -41866,16 +41866,16 @@ namespace OpenTK.Graphics.ES30
         private static extern void glBindVertexArrayOES(UInt32 array);
         [Slot(56)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(59)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(66)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(99)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(124)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEGLImageTargetRenderbufferStorageOES(System.Int32 target, IntPtr image);
@@ -41887,13 +41887,13 @@ namespace OpenTK.Graphics.ES30
         private static extern void glFramebufferTexture3DOES(System.Int32 target, System.Int32 attachment, System.Int32 textarget, UInt32 texture, Int32 level, Int32 zoffset);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(188)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetBufferPointervOES(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
         [Slot(236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsVertexArrayOES(UInt32 array);
@@ -41905,16 +41905,16 @@ namespace OpenTK.Graphics.ES30
         private static extern void glMinSampleShadingOES(Single value);
         [Slot(322)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(415)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage3DMultisampleOES(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(418)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(465)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBufferOES(System.Int32 target);
@@ -41935,22 +41935,22 @@ namespace OpenTK.Graphics.ES30
         private static extern void glExtGetBufferPointervQCOM(System.Int32 target, [OutAttribute] IntPtr @params);
         [Slot(137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers);
+        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers);
+        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers);
         [Slot(139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetProgramBinarySourceQCOM(UInt32 program, System.Int32 shadertype, [OutAttribute] IntPtr source, [OutAttribute] Int32* length);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms);
+        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms);
         [Slot(141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers);
+        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers);
         [Slot(142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetShadersQCOM([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders);
+        private static extern unsafe void glExtGetShadersQCOM([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders);
         [Slot(143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetTexLevelParameterivQCOM(UInt32 texture, System.Int32 face, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -41968,10 +41968,10 @@ namespace OpenTK.Graphics.ES30
         private static extern void glExtTexObjectStateOverrideiQCOM(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(191)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls);
+        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls);
         [Slot(192)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr driverControlString);
+        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr driverControlString);
         [Slot(391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStartTilingQCOM(UInt32 x, UInt32 y, UInt32 width, UInt32 height, UInt32 preserveMask);
index a1d461c..094a65b 100644 (file)
@@ -1193,42 +1193,42 @@ namespace OpenTK.Graphics.ES31
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, [OutAttribute] Int32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, [OutAttribute] out Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, [OutAttribute] Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, [OutAttribute] UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, [OutAttribute] out UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, [OutAttribute] UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1252,42 +1252,42 @@ namespace OpenTK.Graphics.ES31
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] Int32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out Int32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out UInt32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1297,7 +1297,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] Int32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1307,7 +1307,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] out Int32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out Int32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1317,7 +1317,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] Int32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1327,7 +1327,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] UInt32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1337,7 +1337,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] out UInt32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out UInt32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1347,25 +1347,25 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.ES31.All pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1373,10 +1373,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1384,10 +1384,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1395,10 +1395,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1406,19 +1406,19 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1426,10 +1426,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1437,10 +1437,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1448,10 +1448,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1463,7 +1463,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] Int32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1473,7 +1473,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out Int32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out Int32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1483,7 +1483,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] Int32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1493,7 +1493,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1503,7 +1503,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out UInt32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out UInt32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1513,7 +1513,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1523,7 +1523,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1533,7 +1533,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1543,7 +1543,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1553,7 +1553,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1561,7 +1561,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] Int32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1569,7 +1569,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out Int32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out Int32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1577,7 +1577,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] UInt32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1585,7 +1585,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out UInt32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out UInt32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1593,7 +1593,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] Int32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -1601,7 +1601,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1610,7 +1610,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1619,7 +1619,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1628,7 +1628,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -1637,7 +1637,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1647,7 +1647,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1657,7 +1657,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] out Int32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out Int32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1667,7 +1667,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32* counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1677,7 +1677,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1687,7 +1687,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] out UInt32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out UInt32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -1697,7 +1697,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList) { throw new NotImplementedException(); }
 
         }
 
@@ -1826,7 +1826,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1834,7 +1834,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1848,7 +1848,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1857,7 +1857,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1873,7 +1873,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1882,7 +1882,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1898,7 +1898,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1907,7 +1907,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1923,7 +1923,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1931,7 +1931,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1947,14 +1947,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -1968,7 +1968,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -1976,7 +1976,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -1992,7 +1992,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -2000,7 +2000,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2016,7 +2016,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -2024,7 +2024,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2040,14 +2040,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ANGLE_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedANGLE")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2059,7 +2059,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -2069,7 +2069,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -2079,7 +2079,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(Int32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -2089,7 +2089,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -2099,7 +2099,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_translated_shader_source]</summary>
             /// <param name="shader"></param>
@@ -2109,7 +2109,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "ANGLE_translated_shader_source", Version = "", EntryPoint = "glGetTranslatedShaderSourceANGLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetTranslatedShaderSource(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ANGLE_framebuffer_multisample]
             /// Establish data storage, format, dimensions and sample count of a renderbuffer object's image
@@ -2294,7 +2294,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2316,7 +2316,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Query the properties of a sync object
@@ -2338,7 +2338,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "APPLE_sync", Version = "", EntryPoint = "glGetSyncivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_sync]
             /// Determine if a name corresponds to a sync object
@@ -3234,7 +3234,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES31.All target, Int32 size, IntPtr data, OpenTK.Graphics.ES31.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES31.All target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES31.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3253,7 +3253,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3274,7 +3274,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3295,7 +3295,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3315,7 +3315,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3335,7 +3335,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.ES31.All target, IntPtr size, IntPtr data, OpenTK.Graphics.ES31.All usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.ES31.All target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.ES31.All usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Creates and initializes a buffer object's data store
@@ -3354,7 +3354,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3375,7 +3375,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3396,7 +3396,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3416,7 +3416,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.ES31.All usage)
+        public static void BufferData<T2>(OpenTK.Graphics.ES31.All target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.ES31.All usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -3436,7 +3436,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -3455,7 +3455,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3476,7 +3476,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3497,7 +3497,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3517,7 +3517,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3537,7 +3537,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Updates a subset of a buffer object's data store
@@ -3556,7 +3556,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3577,7 +3577,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3598,7 +3598,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3618,7 +3618,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.ES31.All target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -3687,12 +3687,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, Single[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3703,12 +3703,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, ref Single value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3719,12 +3719,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3735,12 +3735,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, Int32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3751,12 +3751,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3767,12 +3767,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3783,12 +3783,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3799,12 +3799,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -3815,12 +3815,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.ES31.All buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify clear values for the color buffers
@@ -3957,7 +3957,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -3989,7 +3989,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4023,7 +4023,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4057,7 +4057,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4090,7 +4090,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4122,7 +4122,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image in a compressed format
@@ -4153,7 +4153,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4186,7 +4186,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4219,7 +4219,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4251,7 +4251,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -4287,7 +4287,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image in a compressed format
@@ -4322,7 +4322,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4359,7 +4359,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4396,7 +4396,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4432,7 +4432,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4467,7 +4467,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image in a compressed format
@@ -4501,7 +4501,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4537,7 +4537,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4573,7 +4573,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4608,7 +4608,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4644,7 +4644,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -4679,7 +4679,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4716,7 +4716,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4753,7 +4753,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4789,7 +4789,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4824,7 +4824,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -4858,7 +4858,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4894,7 +4894,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4930,7 +4930,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -4965,7 +4965,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -5007,7 +5007,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -5048,7 +5048,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5091,7 +5091,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5134,7 +5134,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5176,7 +5176,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5217,7 +5217,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -5257,7 +5257,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5299,7 +5299,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5341,7 +5341,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5382,7 +5382,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -5645,7 +5645,7 @@ namespace OpenTK.Graphics.ES31
         /// Specifies the address of an array of pointers to source code strings from which to create the program object.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glCreateShaderProgramv")]
-        public static Int32 CreateShaderProgram(OpenTK.Graphics.ES31.All type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+        public static Int32 CreateShaderProgram(OpenTK.Graphics.ES31.All type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify whether front- or back-facing polygons can be culled
@@ -5760,7 +5760,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5785,7 +5785,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5810,7 +5810,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5835,7 +5835,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5860,7 +5860,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Control the reporting of debug messages in a debug context
@@ -5885,7 +5885,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, OpenTK.Graphics.ES31.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5905,12 +5905,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, Int32 id, OpenTK.Graphics.ES31.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, Int32 id, OpenTK.Graphics.ES31.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Inject an application-supplied message into the debug message queue
@@ -5930,12 +5930,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, UInt32 id, OpenTK.Graphics.ES31.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.ES31.All source, OpenTK.Graphics.ES31.All type, UInt32 id, OpenTK.Graphics.ES31.All severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5945,7 +5945,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5955,7 +5955,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5968,7 +5968,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5981,7 +5981,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -5994,7 +5994,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -6007,7 +6007,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -6020,7 +6020,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named buffer objects
@@ -6033,7 +6033,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6043,7 +6043,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6053,7 +6053,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6066,7 +6066,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6079,7 +6079,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6092,7 +6092,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6105,7 +6105,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6118,7 +6118,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete framebuffer objects
@@ -6131,7 +6131,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Deletes a program object
@@ -6161,7 +6161,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6171,7 +6171,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6184,7 +6184,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6197,7 +6197,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6210,7 +6210,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6223,7 +6223,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6236,7 +6236,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Delete program pipeline objects
@@ -6249,7 +6249,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6259,7 +6259,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6269,7 +6269,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6282,7 +6282,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6295,7 +6295,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6308,7 +6308,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6321,7 +6321,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6334,7 +6334,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named query objects
@@ -6347,7 +6347,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6357,7 +6357,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6367,7 +6367,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6380,7 +6380,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6393,7 +6393,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6406,7 +6406,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6419,7 +6419,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6432,7 +6432,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete renderbuffer objects
@@ -6445,7 +6445,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6455,7 +6455,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6465,7 +6465,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6478,7 +6478,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6491,7 +6491,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6504,7 +6504,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6517,7 +6517,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6530,7 +6530,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete named sampler objects
@@ -6543,7 +6543,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Deletes a shader object
@@ -6582,7 +6582,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6592,7 +6592,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6605,7 +6605,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6618,7 +6618,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6631,7 +6631,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6644,7 +6644,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6657,7 +6657,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Delete named textures
@@ -6670,7 +6670,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6680,7 +6680,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6690,7 +6690,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6703,7 +6703,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6716,7 +6716,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6729,7 +6729,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6742,7 +6742,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6755,7 +6755,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete transform feedback objects
@@ -6768,7 +6768,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6778,7 +6778,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6788,7 +6788,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6801,7 +6801,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6814,7 +6814,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6827,7 +6827,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6840,7 +6840,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6853,7 +6853,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Delete vertex array objects
@@ -6866,7 +6866,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value used for depth buffer comparisons
@@ -7224,7 +7224,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES31.All[] bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All[] bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -7237,7 +7237,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES31.All bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES31.All bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specifies a list of color buffers to be drawn into
@@ -7250,7 +7250,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES31.All* bufs) { throw new NotImplementedException(); }
+        public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All* bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -7264,12 +7264,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -7283,13 +7283,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7305,13 +7305,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7327,13 +7327,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7349,12 +7349,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7370,11 +7370,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Render primitives from array data
@@ -7388,12 +7388,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7409,12 +7409,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7430,12 +7430,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7451,11 +7451,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7648,7 +7648,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7656,7 +7656,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Draw multiple instances of a set of elements
@@ -7670,7 +7670,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7679,7 +7679,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7695,7 +7695,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7704,7 +7704,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7720,7 +7720,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7729,7 +7729,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7745,7 +7745,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7753,7 +7753,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7769,14 +7769,14 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Draw multiple instances of a set of elements
@@ -7790,7 +7790,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7798,7 +7798,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7814,7 +7814,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7822,7 +7822,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7838,7 +7838,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -7846,7 +7846,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7862,14 +7862,14 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -7891,13 +7891,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -7917,13 +7917,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -7945,13 +7945,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -7973,13 +7973,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8001,13 +8001,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8029,13 +8029,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8055,13 +8055,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8083,13 +8083,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8111,13 +8111,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8139,13 +8139,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.All mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8167,12 +8167,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8192,12 +8192,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8219,12 +8219,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8246,12 +8246,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8273,12 +8273,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8300,12 +8300,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Render primitives from array data
@@ -8325,12 +8325,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8352,12 +8352,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8379,12 +8379,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8406,12 +8406,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.ES31.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8841,7 +8841,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -8854,7 +8854,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -8867,7 +8867,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -8880,7 +8880,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -8893,7 +8893,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate buffer object names
@@ -8906,7 +8906,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate mipmaps for a specified texture target
@@ -8935,7 +8935,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -8948,7 +8948,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -8961,7 +8961,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -8974,7 +8974,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -8987,7 +8987,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate framebuffer object names
@@ -9000,7 +9000,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9020,7 +9020,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9033,7 +9033,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9046,7 +9046,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9059,7 +9059,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9072,7 +9072,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Reserve program pipeline object names
@@ -9085,7 +9085,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9105,7 +9105,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9118,7 +9118,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9131,7 +9131,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9144,7 +9144,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9157,7 +9157,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate query object names
@@ -9170,7 +9170,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9190,7 +9190,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9203,7 +9203,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9216,7 +9216,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9229,7 +9229,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9242,7 +9242,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate renderbuffer object names
@@ -9255,7 +9255,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9275,7 +9275,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] Int32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9288,7 +9288,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out Int32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9301,7 +9301,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9314,7 +9314,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9327,7 +9327,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out UInt32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate sampler object names
@@ -9340,7 +9340,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9360,7 +9360,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9373,7 +9373,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9386,7 +9386,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9399,7 +9399,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9412,7 +9412,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Generate texture names
@@ -9425,7 +9425,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9445,7 +9445,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9458,7 +9458,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9471,7 +9471,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9484,7 +9484,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9497,7 +9497,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Reserve transform feedback object names
@@ -9510,7 +9510,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9530,7 +9530,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9543,7 +9543,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9556,7 +9556,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9569,7 +9569,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9582,7 +9582,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Generate vertex array object names
@@ -9595,7 +9595,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -9623,7 +9623,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -9651,7 +9651,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -9679,7 +9679,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active attribute variable for the specified program object
@@ -9707,7 +9707,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -9735,7 +9735,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -9763,7 +9763,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -9791,7 +9791,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns information about an active uniform variable for the specified program object
@@ -9819,7 +9819,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9833,12 +9833,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9852,12 +9852,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9871,12 +9871,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9890,12 +9890,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9909,12 +9909,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query information about an active uniform block
@@ -9928,12 +9928,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -9955,7 +9955,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -9977,7 +9977,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -9999,7 +9999,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the name of an active uniform block
@@ -10021,7 +10021,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10038,12 +10038,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32[] uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10060,12 +10060,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref Int32 uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10082,12 +10082,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32* uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10104,12 +10104,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32[] uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10126,12 +10126,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref UInt32 uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns information about several active uniform variables for the specified program object
@@ -10148,12 +10148,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10172,7 +10172,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10191,7 +10191,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10210,7 +10210,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10229,7 +10229,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10248,7 +10248,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the handles of the shader objects attached to a program object
@@ -10267,7 +10267,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the location of an attribute variable
@@ -10298,50 +10298,50 @@ namespace OpenTK.Graphics.ES31
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
@@ -10358,48 +10358,48 @@ namespace OpenTK.Graphics.ES31
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -10410,12 +10410,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -10426,12 +10426,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a buffer object
@@ -10442,12 +10442,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccessFlags, BufferMapped, BufferMapLength, BufferMapOffset, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -10458,12 +10458,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -10474,12 +10474,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return parameters of a buffer object
@@ -10490,12 +10490,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return the pointer to a mapped buffer object's data store
@@ -10510,7 +10510,7 @@ namespace OpenTK.Graphics.ES31
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetBufferPointer(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return the pointer to a mapped buffer object's data store
@@ -10526,7 +10526,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -10544,7 +10544,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -10562,7 +10562,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -10579,7 +10579,7 @@ namespace OpenTK.Graphics.ES31
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T2 @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -10612,7 +10612,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All[] sources, [OutAttribute] OpenTK.Graphics.ES31.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES31.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -10643,7 +10643,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES31.All sources, [OutAttribute] out OpenTK.Graphics.ES31.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES31.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -10674,7 +10674,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All* sources, [OutAttribute] OpenTK.Graphics.ES31.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES31.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -10705,7 +10705,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All[] sources, [OutAttribute] OpenTK.Graphics.ES31.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES31.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -10736,7 +10736,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES31.All sources, [OutAttribute] out OpenTK.Graphics.ES31.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES31.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve messages from the debug message log
@@ -10767,7 +10767,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All* sources, [OutAttribute] OpenTK.Graphics.ES31.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES31.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return error information
@@ -10790,48 +10790,48 @@ namespace OpenTK.Graphics.ES31
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -10839,12 +10839,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(Int32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -10852,12 +10852,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10871,13 +10871,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10891,13 +10891,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10911,13 +10911,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10931,12 +10931,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10950,12 +10950,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -10969,12 +10969,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.ES31.FramebufferTarget target, OpenTK.Graphics.ES31.FramebufferAttachment attachment, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve a named parameter from a framebuffer
@@ -10985,12 +10985,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve a named parameter from a framebuffer
@@ -11001,12 +11001,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve a named parameter from a framebuffer
@@ -11017,12 +11017,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatus")]
@@ -11031,50 +11031,50 @@ namespace OpenTK.Graphics.ES31
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
@@ -11084,72 +11084,72 @@ namespace OpenTK.Graphics.ES31
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
@@ -11166,48 +11166,48 @@ namespace OpenTK.Graphics.ES31
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.ES31.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -11229,7 +11229,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -11251,7 +11251,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -11273,7 +11273,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All internalformat, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11284,12 +11284,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11300,12 +11300,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11316,12 +11316,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.ES31.All pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11332,12 +11332,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11348,12 +11348,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the location of a sample
@@ -11364,12 +11364,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.ES31.All pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="program"></param>
@@ -11526,7 +11526,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -11548,7 +11548,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -11570,7 +11570,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -11592,7 +11592,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -11614,7 +11614,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a named object identified within a namespace
@@ -11636,7 +11636,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -11656,7 +11656,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -11676,7 +11676,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -11696,7 +11696,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve the label of a sync object identified by a pointer
@@ -11716,7 +11716,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11738,7 +11738,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11760,7 +11760,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11782,7 +11782,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11804,7 +11804,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11826,7 +11826,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11848,7 +11848,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11870,7 +11870,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11892,7 +11892,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11914,7 +11914,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11936,7 +11936,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11958,7 +11958,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -11973,7 +11973,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -11987,7 +11987,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12003,7 +12003,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12019,7 +12019,7 @@ namespace OpenTK.Graphics.ES31
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12034,7 +12034,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12048,7 +12048,7 @@ namespace OpenTK.Graphics.ES31
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.ES31.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.ES31.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Return the address of the specified pointer
@@ -12061,7 +12061,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12076,7 +12076,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12091,7 +12091,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12105,7 +12105,7 @@ namespace OpenTK.Graphics.ES31
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.ES31.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -12129,7 +12129,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -12151,7 +12151,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12175,7 +12175,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12199,7 +12199,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12223,7 +12223,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12247,7 +12247,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -12269,7 +12269,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12293,7 +12293,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12317,7 +12317,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12341,7 +12341,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12365,7 +12365,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -12387,7 +12387,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12411,7 +12411,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12435,7 +12435,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12459,7 +12459,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12483,7 +12483,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -12505,7 +12505,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12529,7 +12529,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12553,7 +12553,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12577,7 +12577,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -12598,7 +12598,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -12617,7 +12617,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -12636,7 +12636,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a program object
@@ -12655,7 +12655,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12669,12 +12669,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12688,12 +12688,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12707,12 +12707,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12726,12 +12726,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12745,12 +12745,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query a property of an interface in a program
@@ -12764,12 +12764,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.ES31.All programInterface, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12780,12 +12780,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12796,12 +12796,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12812,12 +12812,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12828,12 +12828,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12844,12 +12844,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a program object
@@ -12860,12 +12860,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, AttachedShaders, DeleteStatus, InfoLogLength, LinkStatus, ProgramBinaryRetrievableHint, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength and ValidateStatus.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the info log string from a program pipeline object
@@ -12884,7 +12884,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the info log string from a program pipeline object
@@ -12903,7 +12903,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the info log string from a program pipeline object
@@ -12922,7 +12922,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve the info log string from a program pipeline object
@@ -12941,7 +12941,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -12952,12 +12952,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -12968,12 +12968,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -12984,12 +12984,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -13000,12 +13000,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -13016,12 +13016,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve properties of a program pipeline object
@@ -13032,12 +13032,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the index of a named resource within a program
@@ -13048,12 +13048,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.ES31.All programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.ES31.All programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the index of a named resource within a program
@@ -13064,12 +13064,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.ES31.All programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.ES31.All programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13088,7 +13088,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.ES31.All[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.ES31.All[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13107,7 +13107,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, ref OpenTK.Graphics.ES31.All props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.ES31.All props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13126,7 +13126,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.ES31.All* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.ES31.All* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13145,7 +13145,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.ES31.All[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.ES31.All[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13164,7 +13164,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, ref OpenTK.Graphics.ES31.All props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.ES31.All props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -13183,7 +13183,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.ES31.All* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.ES31.All* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the location of a named resource within a program
@@ -13194,12 +13194,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.ES31.All programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.ES31.All programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the location of a named resource within a program
@@ -13210,12 +13210,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.ES31.All programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.ES31.All programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the name of an indexed resource within a program
@@ -13240,7 +13240,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the name of an indexed resource within a program
@@ -13265,7 +13265,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.ES31.All programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the name of an indexed resource within a program
@@ -13290,7 +13290,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Query the name of an indexed resource within a program
@@ -13315,7 +13315,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.ES31.All programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -13326,12 +13326,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -13342,12 +13342,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object target
@@ -13358,12 +13358,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Must be CurrentQuery.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQuery(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13374,12 +13374,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13390,12 +13390,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13406,12 +13406,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13422,12 +13422,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13438,12 +13438,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return parameters of a query object
@@ -13454,12 +13454,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13470,13 +13470,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13487,13 +13487,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13504,13 +13504,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13521,12 +13521,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13537,12 +13537,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve information about a bound renderbuffer object
@@ -13553,12 +13553,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.ES31.RenderbufferTarget target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13569,12 +13569,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13585,12 +13585,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13601,12 +13601,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13617,12 +13617,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13633,12 +13633,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13649,12 +13649,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13665,12 +13665,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13681,12 +13681,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13697,12 +13697,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13713,12 +13713,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13729,12 +13729,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Return sampler parameter values
@@ -13745,12 +13745,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureWrapS, TextureWrapT, TextureWrapR, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -13769,7 +13769,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -13788,7 +13788,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -13807,7 +13807,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the information log for a shader object
@@ -13826,7 +13826,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13837,12 +13837,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13853,12 +13853,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13869,12 +13869,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13885,12 +13885,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13901,12 +13901,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns a parameter from a shader object
@@ -13917,12 +13917,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -13941,7 +13941,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -13960,7 +13960,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -13979,7 +13979,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.ES31.All shadertype, OpenTK.Graphics.ES31.All precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -13998,7 +13998,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -14017,7 +14017,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -14036,7 +14036,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the source code string from a shader object
@@ -14055,7 +14055,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a string describing the current GL connection
@@ -14122,7 +14122,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -14144,7 +14144,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Query the properties of a sync object
@@ -14166,7 +14166,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.ES31.All pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14180,13 +14180,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14200,13 +14200,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14220,13 +14220,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14240,12 +14240,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14259,12 +14259,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14278,12 +14278,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14297,13 +14297,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14317,13 +14317,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14337,13 +14337,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14357,12 +14357,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14376,12 +14376,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Return texture parameter values for a specific level of detail
@@ -14395,12 +14395,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14411,13 +14411,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14428,13 +14428,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14445,13 +14445,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14462,12 +14462,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14478,12 +14478,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14494,12 +14494,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14510,13 +14510,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14527,13 +14527,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14544,13 +14544,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14561,12 +14561,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14577,12 +14577,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return texture parameter values
@@ -14593,12 +14593,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureImmutableFormat, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -14626,7 +14626,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -14654,7 +14654,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -14682,7 +14682,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.ES31.All type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -14710,7 +14710,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.ES31.All* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14718,12 +14718,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(Int32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14731,12 +14731,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14747,12 +14747,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14763,12 +14763,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14779,12 +14779,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14795,12 +14795,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14811,12 +14811,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14827,12 +14827,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14843,15 +14843,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14862,15 +14862,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out Int32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out Int32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14881,15 +14881,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14900,15 +14900,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14919,15 +14919,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out UInt32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out UInt32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Retrieve the index of a named uniform block
@@ -14938,15 +14938,15 @@ namespace OpenTK.Graphics.ES31
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14957,12 +14957,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14973,12 +14973,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -14989,12 +14989,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -15005,12 +15005,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -15021,12 +15021,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the value of a uniform variable
@@ -15037,12 +15037,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Returns the location of a uniform variable
@@ -15079,12 +15079,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns the value of a uniform variable
@@ -15095,12 +15095,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Returns the value of a uniform variable
@@ -15111,12 +15111,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15132,7 +15132,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15148,7 +15148,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15164,7 +15164,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15180,7 +15180,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15196,7 +15196,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15212,7 +15212,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15220,7 +15220,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15228,7 +15228,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15236,7 +15236,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15244,7 +15244,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15252,7 +15252,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -15260,7 +15260,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15276,7 +15276,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15292,7 +15292,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15308,7 +15308,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15324,7 +15324,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15340,7 +15340,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return a generic vertex attribute parameter
@@ -15356,7 +15356,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -15372,7 +15372,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -15388,7 +15388,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15406,7 +15406,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15424,7 +15424,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15442,7 +15442,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15460,7 +15460,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -15476,7 +15476,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15494,7 +15494,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15512,7 +15512,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15530,7 +15530,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.ES31.All pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -15573,7 +15573,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All[] attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All[] attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -15589,7 +15589,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, ref OpenTK.Graphics.ES31.All attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES31.All attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate the contents of attachments within a framebuffer
@@ -15605,7 +15605,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All* attachments) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All* attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -15633,7 +15633,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -15661,7 +15661,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, ref OpenTK.Graphics.ES31.All attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES31.All attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Invalidate portions of the contents of attachments within a framebuffer
@@ -15689,7 +15689,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Determine if a name corresponds to a buffer object
@@ -16086,12 +16086,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a named object identified within a namespace
@@ -16105,12 +16105,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -16121,11 +16121,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Label a a sync object identified by a pointer
@@ -16136,12 +16136,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -16154,12 +16154,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -16172,12 +16172,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -16190,11 +16190,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -16264,7 +16264,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Load a program object with a program binary
@@ -16283,7 +16283,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16304,7 +16304,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16325,7 +16325,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16346,7 +16346,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16367,7 +16367,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Load a program object with a program binary
@@ -16386,7 +16386,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16407,7 +16407,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16428,7 +16428,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16449,7 +16449,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -16534,7 +16534,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16553,7 +16553,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16572,7 +16572,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16591,7 +16591,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16642,7 +16642,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16661,7 +16661,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16680,7 +16680,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16699,7 +16699,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16734,7 +16734,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16753,7 +16753,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16810,7 +16810,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16829,7 +16829,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16848,7 +16848,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16867,7 +16867,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16886,7 +16886,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16905,7 +16905,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16962,7 +16962,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -16981,7 +16981,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17000,7 +17000,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17019,7 +17019,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17057,7 +17057,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17076,7 +17076,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17095,7 +17095,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17158,7 +17158,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17177,7 +17177,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17196,7 +17196,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17215,7 +17215,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17234,7 +17234,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17253,7 +17253,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17316,7 +17316,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17335,7 +17335,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17354,7 +17354,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17373,7 +17373,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17392,7 +17392,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17411,7 +17411,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17452,7 +17452,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17471,7 +17471,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17490,7 +17490,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17559,7 +17559,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17578,7 +17578,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17597,7 +17597,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17616,7 +17616,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17635,7 +17635,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17654,7 +17654,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17723,7 +17723,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17742,7 +17742,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17761,7 +17761,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17780,7 +17780,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17799,7 +17799,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17818,7 +17818,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17862,7 +17862,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17881,7 +17881,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -17900,7 +17900,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17910,7 +17910,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17920,7 +17920,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17930,7 +17930,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17940,7 +17940,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17950,7 +17950,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17960,7 +17960,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17970,7 +17970,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17980,7 +17980,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -17990,7 +17990,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18000,7 +18000,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18010,7 +18010,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18020,7 +18020,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18030,7 +18030,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18040,7 +18040,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18050,7 +18050,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18060,7 +18060,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18070,7 +18070,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18080,7 +18080,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18090,7 +18090,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18100,7 +18100,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18110,7 +18110,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18120,7 +18120,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18130,7 +18130,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18140,7 +18140,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18150,7 +18150,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18160,7 +18160,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18170,7 +18170,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18180,7 +18180,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18190,7 +18190,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18200,7 +18200,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18210,7 +18210,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18220,7 +18220,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18230,7 +18230,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18240,7 +18240,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18250,7 +18250,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18260,7 +18260,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18270,7 +18270,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18280,7 +18280,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18290,7 +18290,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18300,7 +18300,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18310,7 +18310,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18320,7 +18320,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18330,7 +18330,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18340,7 +18340,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18350,7 +18350,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18360,7 +18360,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18370,7 +18370,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18380,7 +18380,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18390,7 +18390,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18400,7 +18400,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18410,7 +18410,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18420,7 +18420,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18430,7 +18430,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="program"></param>
@@ -18440,7 +18440,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ES_VERSION_3_1", Version = "3.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Push a named debug group into the command stream
@@ -18454,12 +18454,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES31.All source, Int32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES31.All source, Int32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Push a named debug group into the command stream
@@ -18473,12 +18473,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.ES31.All source, UInt32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.ES31.All source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Select a color buffer source for pixels
@@ -18591,12 +18591,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -18619,13 +18619,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18650,13 +18650,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18681,13 +18681,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18712,12 +18712,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18742,11 +18742,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Read a block of pixels from the frame buffer
@@ -18769,12 +18769,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18799,12 +18799,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18829,12 +18829,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -18859,11 +18859,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, UnsignedInt, Int, or Float. An implementation-chosen type will also be accepted. This can be queried with glGet and ImplementationColorReadType.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -19016,12 +19016,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19032,12 +19032,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19048,12 +19048,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19064,12 +19064,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19112,12 +19112,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19128,12 +19128,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19144,12 +19144,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Set sampler parameters
@@ -19160,12 +19160,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define the scissor box
@@ -19205,7 +19205,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19227,7 +19227,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19251,7 +19251,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19275,7 +19275,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19299,7 +19299,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19323,7 +19323,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19345,7 +19345,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19369,7 +19369,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19393,7 +19393,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19417,7 +19417,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19441,7 +19441,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19463,7 +19463,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19487,7 +19487,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19511,7 +19511,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19535,7 +19535,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19559,7 +19559,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19581,7 +19581,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19605,7 +19605,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19629,7 +19629,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19653,7 +19653,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19677,7 +19677,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19699,7 +19699,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19723,7 +19723,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19747,7 +19747,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19771,7 +19771,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19795,7 +19795,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Load pre-compiled shader binaries
@@ -19817,7 +19817,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19841,7 +19841,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19865,7 +19865,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19889,7 +19889,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.ES31.All binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -19910,7 +19910,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -19929,7 +19929,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -19948,7 +19948,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -19967,7 +19967,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -19986,7 +19986,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Replaces the source code in a shader object
@@ -20005,7 +20005,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set front and back function and reference value for stencil testing
@@ -20292,12 +20292,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -20326,13 +20326,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20363,13 +20363,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20400,13 +20400,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20437,12 +20437,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20473,11 +20473,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture image
@@ -20506,12 +20506,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20542,12 +20542,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20578,12 +20578,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20614,11 +20614,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -20652,12 +20652,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image
@@ -20689,13 +20689,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20729,13 +20729,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20769,13 +20769,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20809,12 +20809,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20848,11 +20848,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture image
@@ -20884,12 +20884,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20923,12 +20923,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -20962,12 +20962,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -21001,11 +21001,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, OpenTK.Graphics.ES31.TextureComponentCount internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -21049,13 +21049,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21066,13 +21066,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21083,12 +21083,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21099,12 +21099,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21146,13 +21146,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21163,13 +21163,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21180,12 +21180,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Set texture parameters
@@ -21196,12 +21196,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Simultaneously specify storage for all levels of a two-dimensional texture
@@ -21299,12 +21299,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -21333,13 +21333,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21370,13 +21370,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21407,13 +21407,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21444,12 +21444,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21480,11 +21480,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify a two-dimensional texture subimage
@@ -21513,12 +21513,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21549,12 +21549,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21585,12 +21585,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21621,11 +21621,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -21662,12 +21662,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage
@@ -21702,13 +21702,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21745,13 +21745,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21788,13 +21788,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21831,12 +21831,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21873,11 +21873,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify a three-dimensional texture subimage
@@ -21912,12 +21912,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21954,12 +21954,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -21996,12 +21996,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -22038,11 +22038,11 @@ namespace OpenTK.Graphics.ES31
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -22063,7 +22063,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES31.All bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES31.All bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify values to record in transform feedback buffers
@@ -22082,7 +22082,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.ES31.All bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.ES31.All bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22110,7 +22110,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22126,7 +22126,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22142,7 +22142,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22170,7 +22170,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22186,7 +22186,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22202,7 +22202,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22231,7 +22231,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22247,7 +22247,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22263,7 +22263,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22294,7 +22294,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22310,7 +22310,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22326,7 +22326,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22357,7 +22357,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22373,7 +22373,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22405,7 +22405,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22421,7 +22421,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22437,7 +22437,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22471,7 +22471,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22487,7 +22487,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22503,7 +22503,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22537,7 +22537,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22553,7 +22553,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22569,7 +22569,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22604,7 +22604,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22620,7 +22620,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22636,7 +22636,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22673,7 +22673,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22689,7 +22689,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22705,7 +22705,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22742,7 +22742,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22758,7 +22758,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22774,7 +22774,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22812,7 +22812,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22828,7 +22828,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Specify the value of a uniform variable for the current program object
@@ -22844,7 +22844,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]
         /// Assign a binding point to an active uniform block
@@ -22885,7 +22885,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -22894,7 +22894,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -22903,7 +22903,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22912,7 +22912,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22921,7 +22921,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22930,7 +22930,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22939,7 +22939,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22948,7 +22948,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22957,7 +22957,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -22966,7 +22966,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -22975,7 +22975,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -22984,7 +22984,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -22993,7 +22993,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23002,7 +23002,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23011,7 +23011,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23020,7 +23020,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23029,7 +23029,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23038,7 +23038,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -23047,7 +23047,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -23056,7 +23056,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]</summary>
         /// <param name="location"></param>
@@ -23065,7 +23065,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23074,7 +23074,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23083,7 +23083,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23092,7 +23092,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23101,7 +23101,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23110,7 +23110,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="location"></param>
@@ -23119,7 +23119,7 @@ namespace OpenTK.Graphics.ES31
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="target"></param>
@@ -23255,7 +23255,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23268,7 +23268,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23313,7 +23313,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23326,7 +23326,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23339,7 +23339,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23352,7 +23352,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23365,7 +23365,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23378,7 +23378,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23429,7 +23429,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23442,7 +23442,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23455,7 +23455,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23468,7 +23468,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23481,7 +23481,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23494,7 +23494,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23551,7 +23551,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23564,7 +23564,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23577,7 +23577,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23590,7 +23590,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23603,7 +23603,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Specifies the value of a generic vertex attribute
@@ -23616,7 +23616,7 @@ namespace OpenTK.Graphics.ES31
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]
         /// Associate a vertex attribute and a vertex buffer binding
@@ -23739,42 +23739,42 @@ namespace OpenTK.Graphics.ES31
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
@@ -23791,21 +23791,21 @@ namespace OpenTK.Graphics.ES31
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ES_VERSION_3_1]</summary>
         /// <param name="attribindex"></param>
@@ -23830,20 +23830,20 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23852,10 +23852,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23864,10 +23864,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23876,10 +23876,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23888,20 +23888,20 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ES_VERSION_3_0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23910,10 +23910,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23922,10 +23922,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23934,10 +23934,10 @@ namespace OpenTK.Graphics.ES31
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "ES_VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -23959,13 +23959,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -23985,13 +23985,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24013,13 +24013,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24041,13 +24041,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24069,13 +24069,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24097,12 +24097,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -24122,12 +24122,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24149,12 +24149,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24176,12 +24176,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24203,12 +24203,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24230,13 +24230,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -24256,13 +24256,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24284,13 +24284,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24312,13 +24312,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24340,13 +24340,13 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [Obsolete("Use strongly-typed overload instead")]
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.All type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24368,12 +24368,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0 or ES_VERSION_2_0]
         /// Define an array of generic vertex attribute data
@@ -24393,12 +24393,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24420,12 +24420,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24447,12 +24447,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24474,12 +24474,12 @@ namespace OpenTK.Graphics.ES31
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first generic vertex attribute in the array. If a non-zero buffer is currently bound to the ArrayBuffer target, pointer specifies an offset of into the array in the data store of that buffer. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "ES_VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.ES31.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -24963,7 +24963,7 @@ namespace OpenTK.Graphics.ES31
             /// Specifies the address of an array of pointers to source code strings from which to create the program object.
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glCreateShaderProgramvEXT")]
-            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES31.All type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+            public static Int32 CreateShaderProgram(OpenTK.Graphics.ES31.All type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -24973,7 +24973,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -24983,7 +24983,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -24996,7 +24996,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -25009,7 +25009,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -25022,7 +25022,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -25035,7 +25035,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -25048,7 +25048,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -25061,7 +25061,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25071,7 +25071,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25081,7 +25081,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25094,7 +25094,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25107,7 +25107,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25120,7 +25120,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25133,7 +25133,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25146,7 +25146,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Delete named query objects
@@ -25159,7 +25159,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glDeleteQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_buffers_indexed]</summary>
             /// <param name="target"></param>
@@ -25181,7 +25181,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All[] attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All[] attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -25189,7 +25189,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, ref OpenTK.Graphics.ES31.All attachments) { throw new NotImplementedException(); }
+            public static void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.ES31.All attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_discard_framebuffer]</summary>
             /// <param name="target"></param>
@@ -25197,7 +25197,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="attachments">[length: numAttachments]</param>
             [AutoGenerated(Category = "EXT_discard_framebuffer", Version = "", EntryPoint = "glDiscardFramebufferEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, OpenTK.Graphics.ES31.All* attachments) { throw new NotImplementedException(); }
+            public static unsafe void DiscardFramebuffer(OpenTK.Graphics.ES31.All target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.ES31.All* attachments) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a range of elements
@@ -25281,7 +25281,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES31.All[] location, Int32[] indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All[] location, [CountAttribute(Parameter = "n")] Int32[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -25289,7 +25289,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static void DrawBuffersIndexed(Int32 n, ref OpenTK.Graphics.ES31.All location, ref Int32 indices) { throw new NotImplementedException(); }
+            public static void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES31.All location, [CountAttribute(Parameter = "n")] ref Int32 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multiview_draw_buffers]</summary>
             /// <param name="n"></param>
@@ -25297,7 +25297,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="indices">[length: n]</param>
             [AutoGenerated(Category = "EXT_multiview_draw_buffers", Version = "", EntryPoint = "glDrawBuffersIndexedEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffersIndexed(Int32 n, OpenTK.Graphics.ES31.All* location, Int32* indices) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffersIndexed(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All* location, [CountAttribute(Parameter = "n")] Int32* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -25311,7 +25311,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25319,7 +25319,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -25333,7 +25333,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25342,7 +25342,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25358,7 +25358,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25367,7 +25367,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25383,7 +25383,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25392,7 +25392,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25408,7 +25408,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25416,7 +25416,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25432,14 +25432,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced|EXT_instanced_arrays]
             /// Draw multiple instances of a set of elements
@@ -25453,7 +25453,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25461,7 +25461,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25477,7 +25477,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25485,7 +25485,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25501,7 +25501,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -25509,7 +25509,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25525,14 +25525,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced|EXT_instanced_arrays", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -25711,7 +25711,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -25724,7 +25724,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -25737,7 +25737,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -25750,7 +25750,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -25763,7 +25763,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -25776,7 +25776,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25796,7 +25796,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25809,7 +25809,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25822,7 +25822,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25835,7 +25835,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25848,7 +25848,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Generate query object names
@@ -25861,7 +25861,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query|EXT_occlusion_query_boolean", Version = "", EntryPoint = "glGenQueriesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusEXT")]
@@ -25922,7 +25922,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25931,7 +25931,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25940,7 +25940,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25949,7 +25949,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25958,7 +25958,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25967,7 +25967,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25976,7 +25976,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25985,7 +25985,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -25994,7 +25994,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -26003,7 +26003,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -26012,7 +26012,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="program"></param>
@@ -26021,7 +26021,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glGetnUniformivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26043,7 +26043,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26065,7 +26065,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26087,7 +26087,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26109,7 +26109,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26131,7 +26131,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -26153,7 +26153,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26173,7 +26173,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26193,7 +26193,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26213,7 +26213,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26233,7 +26233,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26253,7 +26253,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -26273,7 +26273,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve properties of a program pipeline object
@@ -26404,12 +26404,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26420,12 +26420,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26436,12 +26436,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26452,12 +26452,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26468,12 +26468,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26484,12 +26484,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26596,12 +26596,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26612,12 +26612,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query]
             /// Return parameters of a query object
@@ -26628,12 +26628,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_disjoint_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_disjoint_timer_query|EXT_occlusion_query_boolean]
             /// Return parameters of a query object
@@ -26686,176 +26686,176 @@ namespace OpenTK.Graphics.ES31
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -27029,10 +27029,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27041,7 +27041,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -27049,10 +27049,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27061,7 +27061,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -27069,10 +27069,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27081,7 +27081,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -27089,10 +27089,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27100,7 +27100,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -27108,10 +27108,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27119,7 +27119,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -27127,10 +27127,10 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -27138,7 +27138,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27146,13 +27146,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27161,7 +27161,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES31.All mode, Int32[] count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27169,13 +27169,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27184,7 +27184,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27194,13 +27194,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27209,7 +27209,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27219,13 +27219,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27234,7 +27234,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27244,13 +27244,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27259,7 +27259,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27269,13 +27269,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27284,7 +27284,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES31.All mode, ref Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27292,13 +27292,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27307,7 +27307,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27317,13 +27317,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27332,7 +27332,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27342,13 +27342,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27357,7 +27357,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27367,13 +27367,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27382,7 +27382,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27392,13 +27392,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27407,7 +27407,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES31.All mode, Int32* count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27415,13 +27415,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27430,7 +27430,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27440,13 +27440,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27455,7 +27455,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27465,13 +27465,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27480,7 +27480,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27490,13 +27490,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27505,7 +27505,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.All mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27515,13 +27515,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27529,7 +27529,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27537,13 +27537,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27551,7 +27551,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27561,13 +27561,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27575,7 +27575,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27585,13 +27585,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27599,7 +27599,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27609,13 +27609,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27623,7 +27623,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27633,13 +27633,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27647,7 +27647,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27655,13 +27655,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27669,7 +27669,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27679,13 +27679,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27693,7 +27693,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27703,13 +27703,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27717,7 +27717,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27727,13 +27727,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27741,7 +27741,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27751,13 +27751,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27765,7 +27765,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27773,13 +27773,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27787,7 +27787,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27797,13 +27797,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27811,7 +27811,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27821,13 +27821,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27835,7 +27835,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27845,13 +27845,13 @@ namespace OpenTK.Graphics.ES31
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -27859,7 +27859,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.ES31.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -27972,7 +27972,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -27991,7 +27991,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28010,7 +28010,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28029,7 +28029,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28048,7 +28048,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28067,7 +28067,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28118,7 +28118,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28137,7 +28137,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28156,7 +28156,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28175,7 +28175,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28194,7 +28194,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28213,7 +28213,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28248,7 +28248,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28267,7 +28267,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28286,7 +28286,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28343,7 +28343,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28362,7 +28362,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28381,7 +28381,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28400,7 +28400,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28419,7 +28419,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28438,7 +28438,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28495,7 +28495,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28514,7 +28514,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28533,7 +28533,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28552,7 +28552,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28590,7 +28590,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28609,7 +28609,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28628,7 +28628,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28691,7 +28691,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28710,7 +28710,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28729,7 +28729,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28748,7 +28748,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28767,7 +28767,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28786,7 +28786,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28849,7 +28849,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28868,7 +28868,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28887,7 +28887,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28906,7 +28906,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28925,7 +28925,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28944,7 +28944,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -28985,7 +28985,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29004,7 +29004,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29023,7 +29023,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29092,7 +29092,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29111,7 +29111,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29130,7 +29130,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29149,7 +29149,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29168,7 +29168,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29187,7 +29187,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29256,7 +29256,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29275,7 +29275,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29294,7 +29294,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29313,7 +29313,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29332,7 +29332,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29351,7 +29351,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29395,7 +29395,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29414,7 +29414,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -29433,7 +29433,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29443,7 +29443,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29453,7 +29453,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29463,7 +29463,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29473,7 +29473,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29483,7 +29483,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29493,7 +29493,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29503,7 +29503,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29513,7 +29513,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29523,7 +29523,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29533,7 +29533,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29543,7 +29543,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29553,7 +29553,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29563,7 +29563,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29573,7 +29573,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29583,7 +29583,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29593,7 +29593,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29603,7 +29603,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29613,7 +29613,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29623,7 +29623,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29633,7 +29633,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29643,7 +29643,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29653,7 +29653,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29663,7 +29663,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29673,7 +29673,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29683,7 +29683,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29693,7 +29693,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29703,7 +29703,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29713,7 +29713,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29723,7 +29723,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29733,7 +29733,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29743,7 +29743,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29753,7 +29753,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29763,7 +29763,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29773,7 +29773,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29783,7 +29783,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29793,7 +29793,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29803,7 +29803,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29813,7 +29813,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29823,7 +29823,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29833,7 +29833,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29843,7 +29843,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29853,7 +29853,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29863,7 +29863,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29873,7 +29873,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29883,7 +29883,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29893,7 +29893,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29903,7 +29903,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29913,7 +29913,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29923,7 +29923,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29933,7 +29933,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29943,7 +29943,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29953,7 +29953,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29963,7 +29963,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -29973,7 +29973,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_marker]</summary>
             /// <param name="length"></param>
@@ -30023,7 +30023,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_robustness]</summary>
             /// <param name="x"></param>
@@ -30036,7 +30036,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -30051,7 +30051,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -30066,7 +30066,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -30080,7 +30080,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "EXT_robustness", Version = "", EntryPoint = "glReadnPixelsEXT")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -30108,74 +30108,74 @@ namespace OpenTK.Graphics.ES31
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, UInt32[] param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, ref UInt32 param) { throw new NotImplementedException(); }
+            public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="sampler"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glSamplerParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, UInt32* param) { throw new NotImplementedException(); }
+            public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_buffer]
             /// Attach the storage for a buffer object to the active buffer texture
@@ -30334,104 +30334,104 @@ namespace OpenTK.Graphics.ES31
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.All target, OpenTK.Graphics.ES31.All pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_border_clamp]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_border_clamp", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.ES31.TextureTarget target, OpenTK.Graphics.ES31.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_storage]
             /// Simultaneously specify storage for all levels of a one-dimensional texture
@@ -31812,7 +31812,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All[] sources, [OutAttribute] OpenTK.Graphics.ES31.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.ES31.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -31843,7 +31843,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES31.All sources, [OutAttribute] out OpenTK.Graphics.ES31.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.ES31.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -31874,7 +31874,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All* sources, [OutAttribute] OpenTK.Graphics.ES31.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.ES31.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -31905,7 +31905,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All[] sources, [OutAttribute] OpenTK.Graphics.ES31.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.ES31.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -31936,7 +31936,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.ES31.All sources, [OutAttribute] out OpenTK.Graphics.ES31.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.ES31.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.ES31.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -31967,7 +31967,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.ES31.All* sources, [OutAttribute] OpenTK.Graphics.ES31.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.ES31.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.ES31.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusKHR")]
@@ -32128,7 +32128,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -32150,7 +32150,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -32172,7 +32172,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -32194,7 +32194,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -32216,7 +32216,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -32238,7 +32238,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.ES31.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -32258,7 +32258,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -32278,7 +32278,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -32298,7 +32298,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -32318,7 +32318,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32340,7 +32340,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32362,7 +32362,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32384,7 +32384,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32406,7 +32406,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32428,7 +32428,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32450,7 +32450,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32472,7 +32472,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32494,7 +32494,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32516,7 +32516,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32538,7 +32538,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32560,7 +32560,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -32784,7 +32784,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -32798,7 +32798,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32814,7 +32814,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32830,7 +32830,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32845,7 +32845,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32859,7 +32859,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -32872,7 +32872,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32887,7 +32887,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32902,7 +32902,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -32916,7 +32916,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.ES31.PixelFormat format, OpenTK.Graphics.ES31.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -33064,55 +33064,55 @@ namespace OpenTK.Graphics.ES31
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a range of elements
@@ -33162,7 +33162,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.ES31.All[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -33175,7 +33175,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.ES31.All bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.ES31.All bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -33188,7 +33188,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_buffers", Version = "", EntryPoint = "glDrawBuffersNV")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.ES31.All* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.ES31.All* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -33202,7 +33202,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33210,7 +33210,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -33224,7 +33224,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33233,7 +33233,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33249,7 +33249,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33258,7 +33258,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33274,7 +33274,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33283,7 +33283,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33299,7 +33299,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33307,7 +33307,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.All mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33323,14 +33323,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -33344,7 +33344,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33352,7 +33352,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33368,7 +33368,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33376,7 +33376,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33392,7 +33392,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -33400,7 +33400,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33416,14 +33416,14 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "NV_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedNV")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.ES31.PrimitiveType mode, Int32 count, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -33449,90 +33449,90 @@ namespace OpenTK.Graphics.ES31
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.ES31.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
@@ -33609,7 +33609,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33618,7 +33618,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33627,7 +33627,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33636,7 +33636,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33645,7 +33645,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33654,7 +33654,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix2x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33663,7 +33663,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33672,7 +33672,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33681,7 +33681,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33690,7 +33690,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33699,7 +33699,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33708,7 +33708,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix3x4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33717,7 +33717,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33726,7 +33726,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33735,7 +33735,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33744,7 +33744,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33753,7 +33753,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_non_square_matrices]</summary>
             /// <param name="location"></param>
@@ -33762,7 +33762,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "NV_non_square_matrices", Version = "", EntryPoint = "glUniformMatrix4x3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_instanced_arrays]
             /// Modify the rate at which generic vertex attributes advance during instanced rendering
@@ -33845,7 +33845,7 @@ namespace OpenTK.Graphics.ES31
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image in a compressed format
@@ -33879,7 +33879,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -33915,7 +33915,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -33951,7 +33951,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -33986,7 +33986,7 @@ namespace OpenTK.Graphics.ES31
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexImage3DOES")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -34027,7 +34027,7 @@ namespace OpenTK.Graphics.ES31
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -34067,7 +34067,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -34109,7 +34109,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -34151,7 +34151,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -34192,7 +34192,7 @@ namespace OpenTK.Graphics.ES31
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glCompressedTexSubImage3DOES")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -34237,7 +34237,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34247,7 +34247,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34260,7 +34260,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34273,7 +34273,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34286,7 +34286,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34299,7 +34299,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34312,7 +34312,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Delete vertex array objects
@@ -34325,7 +34325,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_EGL_image]</summary>
             /// <param name="target"></param>
@@ -34379,7 +34379,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -34392,7 +34392,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -34405,7 +34405,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -34418,7 +34418,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -34431,7 +34431,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_vertex_array_object]
             /// Generate vertex array object names
@@ -34444,7 +34444,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysOES")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_mapbuffer]</summary>
             /// <param name="target"></param>
@@ -34513,7 +34513,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -34536,7 +34536,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34561,7 +34561,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34586,7 +34586,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34611,7 +34611,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34636,7 +34636,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -34659,7 +34659,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34684,7 +34684,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34709,7 +34709,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34734,7 +34734,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34759,7 +34759,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -34782,7 +34782,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34807,7 +34807,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34832,7 +34832,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34857,7 +34857,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34882,7 +34882,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -34905,7 +34905,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34930,7 +34930,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34955,7 +34955,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -34980,7 +34980,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All[] binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35005,7 +35005,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -35028,7 +35028,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35053,7 +35053,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35078,7 +35078,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35103,7 +35103,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35128,7 +35128,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Return a binary representation of a program object's compiled and linked executable source
@@ -35151,7 +35151,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35176,7 +35176,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35201,7 +35201,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35226,7 +35226,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glGetProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+            public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.ES31.All* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -35288,7 +35288,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -35307,7 +35307,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35328,7 +35328,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35349,7 +35349,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35370,7 +35370,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35391,7 +35391,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+            public static void ProgramBinary(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_get_program_binary]
             /// Load a program object with a program binary
@@ -35410,7 +35410,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35431,7 +35431,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35452,7 +35452,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35473,7 +35473,7 @@ namespace OpenTK.Graphics.ES31
             /// </param>
             [AutoGenerated(Category = "OES_get_program_binary", Version = "", EntryPoint = "glProgramBinaryOES")]
             [CLSCompliant(false)]
-            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+            public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.ES31.All binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -35507,11 +35507,11 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture image
@@ -35543,12 +35543,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -35582,12 +35582,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -35621,12 +35621,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -35660,11 +35660,11 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexImage3DOES")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.ES31.All target, Int32 level, OpenTK.Graphics.ES31.All internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -35728,11 +35728,11 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_texture_3D]
             /// Specify a three-dimensional texture subimage
@@ -35767,12 +35767,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -35809,12 +35809,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -35851,12 +35851,12 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -35893,11 +35893,11 @@ namespace OpenTK.Graphics.ES31
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedShort565, UnsignedShort4444, UnsignedShort5551, UnsignedInt2101010Rev, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, UnsignedInt248, and Float32UnsignedInt248Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "OES_texture_3D", Version = "", EntryPoint = "glTexSubImage3DOES")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.ES31.All target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.ES31.All format, OpenTK.Graphics.ES31.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -36006,7 +36006,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36014,7 +36014,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] Int32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36023,7 +36023,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out Int32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out Int32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36032,7 +36032,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] Int32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] Int32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36041,7 +36041,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] Int32[] numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36049,7 +36049,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numBuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] UInt32[] buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32[] buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36058,7 +36058,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetBuffers([OutAttribute] out UInt32 buffers, Int32 maxBuffers, [OutAttribute] out Int32 numBuffers) { throw new NotImplementedException(); }
+            public static void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] out UInt32 buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="buffers">[length: maxBuffers]</param>
@@ -36067,7 +36067,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetBuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetBuffers([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetBuffers([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36076,7 +36076,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36084,7 +36084,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36093,7 +36093,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out Int32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36102,7 +36102,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] Int32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36111,7 +36111,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32[] numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36119,7 +36119,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numFramebuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32[] framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36128,7 +36128,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetFramebuffers([OutAttribute] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute] out Int32 numFramebuffers) { throw new NotImplementedException(); }
+            public static void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] out UInt32 framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="framebuffers">[length: maxFramebuffers]</param>
@@ -36137,7 +36137,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetFramebuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetFramebuffers([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetFramebuffers([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="program"></param>
@@ -36200,7 +36200,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36208,7 +36208,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] Int32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36217,7 +36217,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out Int32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out Int32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36226,7 +36226,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] Int32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] Int32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36235,7 +36235,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] Int32[] numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32[] numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36243,7 +36243,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numPrograms">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] UInt32[] programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32[] programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36252,7 +36252,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetProgram([OutAttribute] out UInt32 programs, Int32 maxPrograms, [OutAttribute] out Int32 numPrograms) { throw new NotImplementedException(); }
+            public static void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] out UInt32 programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] out Int32 numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="programs">[length: maxPrograms]</param>
@@ -36261,7 +36261,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetProgramsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetProgram([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetProgram([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36270,7 +36270,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36278,7 +36278,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36287,7 +36287,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out Int32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36296,7 +36296,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] Int32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36305,7 +36305,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32[] numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36313,7 +36313,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numRenderbuffers">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32[] renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36322,7 +36322,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetRenderbuffers([OutAttribute] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
+            public static void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] out UInt32 renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] out Int32 numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="renderbuffers">[length: maxRenderbuffers]</param>
@@ -36331,7 +36331,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get", Version = "", EntryPoint = "glExtGetRenderbuffersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetRenderbuffers([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetRenderbuffers([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36340,7 +36340,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36348,7 +36348,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] Int32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36357,7 +36357,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out Int32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out Int32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36366,7 +36366,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] Int32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] Int32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36375,7 +36375,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] Int32[] numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32[] numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36383,7 +36383,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="numShaders">[length: 1]</param>
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] UInt32[] shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32[] shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36392,7 +36392,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static void ExtGetShaders([OutAttribute] out UInt32 shaders, Int32 maxShaders, [OutAttribute] out Int32 numShaders) { throw new NotImplementedException(); }
+            public static void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] out UInt32 shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] out Int32 numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get2]</summary>
             /// <param name="shaders">[length: maxShaders]</param>
@@ -36401,7 +36401,7 @@ namespace OpenTK.Graphics.ES31
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "QCOM_extended_get2", Version = "", EntryPoint = "glExtGetShadersQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void ExtGetShaders([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders) { throw new NotImplementedException(); }
+            public static unsafe void ExtGetShaders([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_extended_get]</summary>
             /// <param name="texture"></param>
@@ -36622,7 +36622,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] Int32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -36630,7 +36630,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute] UInt32[] driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] Int32[] num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32[] driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -36638,7 +36638,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out Int32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -36646,7 +36646,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute] out UInt32 driverControls) { throw new NotImplementedException(); }
+            public static void GetDriverControl([OutAttribute] out Int32 num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out UInt32 driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -36654,7 +36654,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] Int32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="num"></param>
@@ -36662,7 +36662,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControls">[length: size]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlsQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControl([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36671,7 +36671,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36680,7 +36680,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36689,7 +36689,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(Int32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36698,7 +36698,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36707,7 +36707,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_driver_control]</summary>
             /// <param name="driverControl"></param>
@@ -36716,7 +36716,7 @@ namespace OpenTK.Graphics.ES31
             /// <param name="driverControlString">[length: bufSize]</param>
             [AutoGenerated(Category = "QCOM_driver_control", Version = "", EntryPoint = "glGetDriverControlStringQCOM")]
             [CLSCompliant(false)]
-            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder driverControlString) { throw new NotImplementedException(); }
+            public static unsafe void GetDriverControlString(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder driverControlString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: QCOM_tiled_rendering]</summary>
             /// <param name="x"></param>
@@ -36745,34 +36745,34 @@ namespace OpenTK.Graphics.ES31
         private static extern void glBeginPerfMonitorAMD(UInt32 monitor);
         [Slot(90)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, [OutAttribute] UInt32* monitors);
+        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEndPerfMonitorAMD(UInt32 monitor);
         [Slot(178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute] UInt32* monitors);
+        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten);
+        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten);
         [Slot(240)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute] IntPtr data);
+        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data);
         [Slot(241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters);
+        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters);
         [Slot(242)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr counterString);
+        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr counterString);
         [Slot(243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups);
+        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups);
         [Slot(244)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr groupString);
+        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr groupString);
         [Slot(448)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList);
+        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList);
         [Slot(40)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlitFramebufferANGLE(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, UInt32 mask, System.Int32 filter);
@@ -36781,10 +36781,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glDrawArraysInstancedANGLE(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(130)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedANGLE(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(290)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetTranslatedShaderSourceANGLE(UInt32 shader, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute] IntPtr source);
         [Slot(432)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleANGLE(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
@@ -36808,7 +36808,7 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glGetInteger64vAPPLE(System.Int32 pname, [OutAttribute] Int64* @params);
         [Slot(282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSyncivAPPLE(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(320)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsSyncAPPLE(IntPtr sync);
@@ -36895,10 +36895,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glBlitFramebuffer(Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
         [Slot(42)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(43)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(44)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glCheckFramebufferStatus(System.Int32 target);
@@ -36910,13 +36910,13 @@ namespace OpenTK.Graphics.ES31
         private static extern void glClearBufferfi(System.Int32 buffer, Int32 drawbuffer, Single depth, Int32 stencil);
         [Slot(47)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, Single* value);
+        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value);
         [Slot(48)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, Int32* value);
+        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value);
         [Slot(49)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, UInt32* value);
+        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value);
         [Slot(50)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearColor(Single red, Single green, Single blue, Single alpha);
@@ -36937,16 +36937,16 @@ namespace OpenTK.Graphics.ES31
         private static extern void glCompileShader(UInt32 shader);
         [Slot(58)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(59)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(61)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(62)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(64)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyBufferSubData(System.Int32 readTarget, System.Int32 writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
@@ -36967,7 +36967,7 @@ namespace OpenTK.Graphics.ES31
         private static extern Int32 glCreateShader(System.Int32 type);
         [Slot(78)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(80)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCullFace(System.Int32 mode);
@@ -36976,31 +36976,31 @@ namespace OpenTK.Graphics.ES31
         private static extern void glDebugMessageCallback(DebugProc callback, IntPtr userParam);
         [Slot(83)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(85)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Computed = "buf,length")] IntPtr buf);
         [Slot(87)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(89)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffers(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(92)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteProgram(UInt32 program);
         [Slot(93)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelines(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(95)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueries(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffers(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteSamplers(Int32 count, UInt32* samplers);
+        private static extern unsafe void glDeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(99)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteShader(UInt32 shader);
@@ -37009,13 +37009,13 @@ namespace OpenTK.Graphics.ES31
         private static extern void glDeleteSync(IntPtr sync);
         [Slot(102)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(103)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(104)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArrays(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(106)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -37051,19 +37051,19 @@ namespace OpenTK.Graphics.ES31
         private static extern void glDrawArraysInstanced(System.Int32 mode, Int32 first, Int32 count, Int32 instancecount);
         [Slot(123)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffers(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(127)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(128)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawElementsIndirect(System.Int32 mode, System.Int32 type, IntPtr indirect);
         [Slot(129)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount);
+        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount);
         [Slot(133)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(136)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnable(System.Int32 cap);
@@ -37105,109 +37105,109 @@ namespace OpenTK.Graphics.ES31
         private static extern void glFrontFace(System.Int32 mode);
         [Slot(174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGenerateMipmap(System.Int32 target);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(181)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(183)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(184)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute] UInt32* samplers);
+        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(185)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(186)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(187)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(189)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(190)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(191)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params);
         [Slot(192)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformBlockName);
+        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformBlockName);
         [Slot(193)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params);
         [Slot(194)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders);
+        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders);
         [Slot(195)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocation(UInt32 program, IntPtr name);
         [Slot(196)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data);
         [Slot(197)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(198)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(199)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
         [Slot(209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetFragDataLocation(UInt32 program, IntPtr name);
+        private static extern Int32 glGetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatus();
         [Slot(216)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data);
         [Slot(217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data);
         [Slot(219)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(223)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute] Single* val);
+        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetnUniformfv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
@@ -37219,70 +37219,70 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glGetnUniformuiv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(260)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, System.Int32* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] System.Int32* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(261)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision);
+        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision);
         [Slot(278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr source);
         [Slot(279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
@@ -37291,64 +37291,64 @@ namespace OpenTK.Graphics.ES31
         private static extern IntPtr glGetStringi(System.Int32 name, UInt32 index);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetUniformBlockIndex(UInt32 program, IntPtr uniformBlockName);
+        private static extern Int32 glGetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] IntPtr uniformBlockName);
         [Slot(292)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params);
         [Slot(293)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, IntPtr uniformNames, [OutAttribute] UInt32* uniformIndices);
+        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] IntPtr uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices);
         [Slot(294)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params);
         [Slot(295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocation(UInt32 program, IntPtr name);
         [Slot(296)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params);
         [Slot(297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(298)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(300)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(302)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
         [Slot(304)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(305)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
+        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(306)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsBuffer(UInt32 buffer);
@@ -37405,10 +37405,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glMemoryBarrierByRegion(UInt32 barriers);
         [Slot(336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, IntPtr label);
+        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, IntPtr label);
+        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPauseTransformFeedback();
@@ -37423,7 +37423,7 @@ namespace OpenTK.Graphics.ES31
         private static extern void glPopDebugGroup();
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteri(UInt32 program, System.Int32 pname, Int32 value);
@@ -37432,103 +37432,103 @@ namespace OpenTK.Graphics.ES31
         private static extern void glProgramUniform1f(UInt32 program, Int32 location, Single v0);
         [Slot(354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value);
         [Slot(356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1i(UInt32 program, Int32 location, Int32 v0);
         [Slot(358)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value);
         [Slot(360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1ui(UInt32 program, Int32 location, UInt32 v0);
         [Slot(362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2f(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value);
         [Slot(368)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2i(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(370)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value);
         [Slot(372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(374)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value);
         [Slot(376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3f(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value);
         [Slot(380)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(382)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value);
         [Slot(384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value);
         [Slot(388)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4f(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value);
         [Slot(392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(394)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value);
         [Slot(396)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(398)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value);
         [Slot(400)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value);
         [Slot(402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(404)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value);
         [Slot(408)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(410)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(412)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value);
         [Slot(414)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(416)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(418)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
+        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] IntPtr message);
         [Slot(422)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReadBuffer(System.Int32 src);
@@ -37537,7 +37537,7 @@ namespace OpenTK.Graphics.ES31
         private static extern void glReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
         [Slot(428)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(429)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReleaseShaderCompiler();
@@ -37561,22 +37561,22 @@ namespace OpenTK.Graphics.ES31
         private static extern void glSamplerParameterf(UInt32 sampler, System.Int32 pname, Single param);
         [Slot(442)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, Single* param);
+        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* param);
         [Slot(443)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSamplerParameteri(UInt32 sampler, System.Int32 pname, Int32 param);
         [Slot(446)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(447)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScissor(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(450)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderBinary(Int32 count, UInt32* shaders, System.Int32 binaryformat, IntPtr binary, Int32 length);
+        private static extern unsafe void glShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, System.Int32 binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(451)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(453)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilFunc(System.Int32 func, Int32 @ref, UInt32 mask);
@@ -37597,22 +37597,22 @@ namespace OpenTK.Graphics.ES31
         private static extern void glStencilOpSeparate(System.Int32 face, System.Int32 sfail, System.Int32 dpfail, System.Int32 dppass);
         [Slot(462)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(463)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(465)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(466)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(467)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(470)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage2D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width, Int32 height);
@@ -37624,115 +37624,115 @@ namespace OpenTK.Graphics.ES31
         private static extern void glTexStorage3D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth);
         [Slot(478)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(479)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(485)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, IntPtr varyings, System.Int32 bufferMode);
+        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] IntPtr varyings, System.Int32 bufferMode);
         [Slot(486)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1f(Int32 location, Single v0);
         [Slot(487)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(488)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i(Int32 location, Int32 v0);
         [Slot(489)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(490)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1ui(Int32 location, UInt32 v0);
         [Slot(491)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value);
         [Slot(492)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2f(Int32 location, Single v0, Single v1);
         [Slot(493)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(494)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i(Int32 location, Int32 v0, Int32 v1);
         [Slot(495)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(496)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2ui(Int32 location, UInt32 v0, UInt32 v1);
         [Slot(497)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(498)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3f(Int32 location, Single v0, Single v1, Single v2);
         [Slot(499)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(500)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(501)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(502)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(503)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(504)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4f(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(505)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(506)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(507)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(508)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(509)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(510)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding);
         [Slot(511)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(512)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(514)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(516)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(517)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(519)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(521)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(522)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(524)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(526)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBuffer(System.Int32 target);
@@ -37753,25 +37753,25 @@ namespace OpenTK.Graphics.ES31
         private static extern void glVertexAttrib1f(UInt32 index, Single x);
         [Slot(536)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fv(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(537)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2f(UInt32 index, Single x, Single y);
         [Slot(538)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fv(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(539)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3f(UInt32 index, Single x, Single y, Single z);
         [Slot(540)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fv(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(541)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4f(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(542)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(543)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribBinding(UInt32 attribindex, UInt32 bindingindex);
@@ -37786,22 +37786,22 @@ namespace OpenTK.Graphics.ES31
         private static extern void glVertexAttribI4i(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(550)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(551)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(552)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(553)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribIFormat(UInt32 attribindex, Int32 size, System.Int32 type, UInt32 relativeoffset);
         [Slot(554)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(555)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(556)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexBindingDivisor(UInt32 bindingindex, UInt32 divisor);
@@ -37849,19 +37849,19 @@ namespace OpenTK.Graphics.ES31
         private static extern Int32 glCreateShaderProgramEXT(System.Int32 type, IntPtr @string);
         [Slot(79)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(94)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueriesEXT(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueriesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(112)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDisableiEXT(System.Int32 target, UInt32 index);
         [Slot(114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glDiscardFramebufferEXT(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(121)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedEXT(System.Int32 mode, Int32 start, Int32 count, Int32 primcount);
@@ -37870,10 +37870,10 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glDrawBuffersEXT(Int32 n, System.Int32* bufs);
         [Slot(125)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, System.Int32* location, Int32* indices);
+        private static extern unsafe void glDrawBuffersIndexedEXT(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* location, [CountAttribute(Parameter = "n")] Int32* indices);
         [Slot(131)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableiEXT(System.Int32 target, UInt32 index);
@@ -37891,10 +37891,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glFramebufferTextureEXT(System.Int32 target, System.Int32 attachment, UInt32 texture, Int32 level);
         [Slot(180)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(182)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueriesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusEXT();
@@ -37903,16 +37903,16 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glGetIntegeri_vEXT(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
         [Slot(226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivEXT(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetProgramPipelineivEXT(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -37921,28 +37921,28 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glGetQueryivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectivEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetQueryObjectuivEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
         [Slot(272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(303)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInsertEventMarkerEXT(Int32 length, IntPtr marker);
@@ -37963,10 +37963,10 @@ namespace OpenTK.Graphics.ES31
         private static extern IntPtr glMapBufferRangeEXT(System.Int32 target, IntPtr offset, IntPtr length, UInt32 access);
         [Slot(334)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount);
         [Slot(335)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount);
         [Slot(340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPatchParameteriEXT(System.Int32 pname, Int32 value);
@@ -37984,100 +37984,100 @@ namespace OpenTK.Graphics.ES31
         private static extern void glProgramUniform1fEXT(UInt32 program, Int32 location, Single v0);
         [Slot(355)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(357)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1iEXT(UInt32 program, Int32 location, Int32 v0);
         [Slot(359)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value);
         [Slot(361)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1uiEXT(UInt32 program, Int32 location, UInt32 v0);
         [Slot(363)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value);
         [Slot(365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2fEXT(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(371)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(373)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(375)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(377)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(389)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(393)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(395)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(397)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(399)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(401)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(405)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(407)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(409)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(411)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(413)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(415)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(417)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(420)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPushGroupMarkerEXT(Int32 length, IntPtr marker);
@@ -38089,16 +38089,16 @@ namespace OpenTK.Graphics.ES31
         private static extern void glReadBufferIndexedEXT(System.Int32 src, Int32 index);
         [Slot(426)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsEXT(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(434)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRenderbufferStorageMultisampleEXT(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(444)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameterIivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(445)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, UInt32* param);
+        private static extern unsafe void glSamplerParameterIuivEXT(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* param);
         [Slot(460)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexBufferEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer);
@@ -38107,10 +38107,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glTexBufferRangeEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(468)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(469)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(471)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage1DEXT(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width);
@@ -38194,7 +38194,7 @@ namespace OpenTK.Graphics.ES31
         private static extern void glDebugMessageInsertKHR(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
         [Slot(203)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(215)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusKHR();
@@ -38209,10 +38209,10 @@ namespace OpenTK.Graphics.ES31
         private static extern unsafe void glGetnUniformuivKHR(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(237)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetPointervKHR(System.Int32 pname, [OutAttribute] IntPtr @params);
@@ -38230,7 +38230,7 @@ namespace OpenTK.Graphics.ES31
         private static extern void glPushDebugGroupKHR(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
         [Slot(427)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(27)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendBarrierNV();
@@ -38251,25 +38251,25 @@ namespace OpenTK.Graphics.ES31
         private static extern void glCoverageOperationNV(System.Int32 operation);
         [Slot(88)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesNV(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawArraysInstancedNV(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(126)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersNV(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffersNV(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedNV(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(161)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinishFenceNV(UInt32 fence);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFenceNV(UInt32 fence);
@@ -38287,22 +38287,22 @@ namespace OpenTK.Graphics.ES31
         private static extern byte glTestFenceNV(UInt32 fence);
         [Slot(513)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(515)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(518)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(520)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(523)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(525)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fvNV(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(547)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribDivisorNV(UInt32 index, UInt32 divisor);
@@ -38311,16 +38311,16 @@ namespace OpenTK.Graphics.ES31
         private static extern void glBindVertexArrayOES(UInt32 array);
         [Slot(60)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(63)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(70)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(105)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArraysOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEGLImageTargetRenderbufferStorageOES(System.Int32 target, IntPtr image);
@@ -38332,13 +38332,13 @@ namespace OpenTK.Graphics.ES31
         private static extern void glFramebufferTexture3DOES(System.Int32 target, System.Int32 attachment, System.Int32 textarget, UInt32 texture, Int32 level, Int32 zoffset);
         [Slot(188)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArraysOES(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(201)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetBufferPointervOES(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
         [Slot(251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinaryOES(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(324)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsVertexArrayOES(UInt32 array);
@@ -38350,16 +38350,16 @@ namespace OpenTK.Graphics.ES31
         private static extern void glMinSampleShadingOES(Single value);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinaryOES(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(464)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3DOES(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage3DMultisampleOES(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(480)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3DOES(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(527)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBufferOES(System.Int32 target);
@@ -38380,22 +38380,22 @@ namespace OpenTK.Graphics.ES31
         private static extern void glExtGetBufferPointervQCOM(System.Int32 target, [OutAttribute] IntPtr @params);
         [Slot(147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute] UInt32* buffers, Int32 maxBuffers, [OutAttribute] Int32* numBuffers);
+        private static extern unsafe void glExtGetBuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxBuffers")] UInt32* buffers, Int32 maxBuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numBuffers);
         [Slot(148)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute] Int32* numFramebuffers);
+        private static extern unsafe void glExtGetFramebuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxFramebuffers")] UInt32* framebuffers, Int32 maxFramebuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numFramebuffers);
         [Slot(149)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetProgramBinarySourceQCOM(UInt32 program, System.Int32 shadertype, [OutAttribute] IntPtr source, [OutAttribute] Int32* length);
         [Slot(150)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute] UInt32* programs, Int32 maxPrograms, [OutAttribute] Int32* numPrograms);
+        private static extern unsafe void glExtGetProgramsQCOM([OutAttribute, CountAttribute(Parameter = "maxPrograms")] UInt32* programs, Int32 maxPrograms, [OutAttribute, CountAttribute(Count = 1)] Int32* numPrograms);
         [Slot(151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute] Int32* numRenderbuffers);
+        private static extern unsafe void glExtGetRenderbuffersQCOM([OutAttribute, CountAttribute(Parameter = "maxRenderbuffers")] UInt32* renderbuffers, Int32 maxRenderbuffers, [OutAttribute, CountAttribute(Count = 1)] Int32* numRenderbuffers);
         [Slot(152)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExtGetShadersQCOM([OutAttribute] UInt32* shaders, Int32 maxShaders, [OutAttribute] Int32* numShaders);
+        private static extern unsafe void glExtGetShadersQCOM([OutAttribute, CountAttribute(Parameter = "maxShaders")] UInt32* shaders, Int32 maxShaders, [OutAttribute, CountAttribute(Count = 1)] Int32* numShaders);
         [Slot(153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glExtGetTexLevelParameterivQCOM(UInt32 texture, System.Int32 face, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
@@ -38413,10 +38413,10 @@ namespace OpenTK.Graphics.ES31
         private static extern void glExtTexObjectStateOverrideiQCOM(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute] UInt32* driverControls);
+        private static extern unsafe void glGetDriverControlsQCOM([OutAttribute] Int32* num, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* driverControls);
         [Slot(205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr driverControlString);
+        private static extern unsafe void glGetDriverControlStringQCOM(UInt32 driverControl, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr driverControlString);
         [Slot(452)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStartTilingQCOM(UInt32 x, UInt32 y, UInt32 width, UInt32 height, UInt32 preserveMask);
index 2b4d9aa..eb5cd6a 100644 (file)
@@ -5830,7 +5830,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]</summary>
             /// <param name="category"></param>
@@ -5840,7 +5840,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]</summary>
             /// <param name="category"></param>
@@ -5850,7 +5850,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]</summary>
             /// <param name="category"></param>
@@ -5860,7 +5860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]</summary>
             /// <param name="category"></param>
@@ -5870,7 +5870,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]</summary>
             /// <param name="category"></param>
@@ -5880,7 +5880,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="enabled"></param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageEnableAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -5902,7 +5902,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageInsertAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 id, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 id, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -5924,7 +5924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glDebugMessageInsertAMD")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, UInt32 id, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, UInt32 id, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5932,7 +5932,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, Int32[] names) { throw new NotImplementedException(); }
+            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [CountAttribute(Parameter = "num")] Int32[] names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5940,7 +5940,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, ref Int32 names) { throw new NotImplementedException(); }
+            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [CountAttribute(Parameter = "num")] ref Int32 names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5948,7 +5948,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, Int32* names) { throw new NotImplementedException(); }
+            public static unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [CountAttribute(Parameter = "num")] Int32* names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5956,7 +5956,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, UInt32[] names) { throw new NotImplementedException(); }
+            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [CountAttribute(Parameter = "num")] UInt32[] names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5964,7 +5964,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, ref UInt32 names) { throw new NotImplementedException(); }
+            public static void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [CountAttribute(Parameter = "num")] ref UInt32 names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -5972,61 +5972,61 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glDeleteNamesAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, UInt32* names) { throw new NotImplementedException(); }
+            public static unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [CountAttribute(Parameter = "num")] UInt32* names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitor(UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitor([CountAttribute(Parameter = "n")] UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, Int32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref Int32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void DeletePerfMonitors(Int32 n, ref UInt32 monitors) { throw new NotImplementedException(); }
+            public static void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glDeletePerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void DeletePerfMonitors(Int32 n, UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void DeletePerfMonitors(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6046,7 +6046,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] Int32[] names) { throw new NotImplementedException(); }
+            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute, CountAttribute(Parameter = "num")] Int32[] names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6054,7 +6054,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] out Int32 names) { throw new NotImplementedException(); }
+            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute, CountAttribute(Parameter = "num")] out Int32 names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6062,7 +6062,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] Int32* names) { throw new NotImplementedException(); }
+            public static unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute, CountAttribute(Parameter = "num")] Int32* names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6070,7 +6070,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] UInt32[] names) { throw new NotImplementedException(); }
+            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute, CountAttribute(Parameter = "num")] UInt32[] names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6078,7 +6078,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] out UInt32 names) { throw new NotImplementedException(); }
+            public static void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute, CountAttribute(Parameter = "num")] out UInt32 names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6086,7 +6086,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="names">[length: num]</param>
             [AutoGenerated(Category = "AMD_name_gen_delete", Version = "", EntryPoint = "glGenNamesAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] UInt32* names) { throw new NotImplementedException(); }
+            public static unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute, CountAttribute(Parameter = "num")] UInt32* names) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
@@ -6098,42 +6098,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] Int32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out Int32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] Int32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] UInt32[] monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static void GenPerfMonitors(Int32 n, [OutAttribute] out UInt32 monitors) { throw new NotImplementedException(); }
+            public static void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="n"></param>
             /// <param name="monitors">[length: n]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGenPerfMonitorsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute] UInt32* monitors) { throw new NotImplementedException(); }
+            public static unsafe void GenPerfMonitors(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6161,7 +6161,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute] Int32[] severities, [OutAttribute] Int32[] ids, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6189,7 +6189,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute] out Int32 severities, [OutAttribute] out Int32 ids, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6217,7 +6217,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute] Int32* severities, [OutAttribute] Int32* ids, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute, CountAttribute(Parameter = "count")] Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6245,7 +6245,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute] UInt32[] severities, [OutAttribute] UInt32[] ids, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] severities, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6273,7 +6273,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute] out UInt32 severities, [OutAttribute] out UInt32 ids, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 severities, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_debug_output]
             /// Retrieve messages from the debug message log
@@ -6301,7 +6301,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogAMD")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute] UInt32* severities, [OutAttribute] UInt32* ids, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder message) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* severities, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder message) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6311,7 +6311,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] Int32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6321,7 +6321,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] out Int32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out Int32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6331,7 +6331,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] Int32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] Int32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6341,7 +6341,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] UInt32[] data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32[] data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6351,7 +6351,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] out UInt32 data, [OutAttribute] out Int32 bytesWritten) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] out UInt32 data, [OutAttribute, CountAttribute(Count = 1)] out Int32 bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6361,25 +6361,25 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bytesWritten">[length: 1]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6387,10 +6387,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6398,10 +6398,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6409,10 +6409,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6420,19 +6420,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6440,10 +6440,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6451,10 +6451,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6462,10 +6462,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="group"></param>
             /// <param name="counter"></param>
             /// <param name="pname"></param>
-            /// <param name="data">[length: pname]</param>
+            /// <param name="data">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -6477,7 +6477,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] Int32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6487,7 +6487,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out Int32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out Int32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6497,7 +6497,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] Int32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] Int32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6507,7 +6507,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32[] counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32[] counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6517,7 +6517,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] out UInt32 counters) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] out Int32 numCounters, [OutAttribute, CountAttribute(Count = 1)] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] out UInt32 counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6527,7 +6527,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counters">[length: counterSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6537,7 +6537,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6547,7 +6547,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6557,7 +6557,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6567,7 +6567,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder counterString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder counterString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6575,7 +6575,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] Int32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6583,7 +6583,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out Int32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out Int32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6591,7 +6591,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] UInt32[] groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32[] groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6599,7 +6599,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroups([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] out UInt32 groups) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] out Int32 numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] out UInt32 groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6607,7 +6607,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] Int32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] Int32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="numGroups">[length: 1]</param>
@@ -6615,7 +6615,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groups">[length: groupsSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupsAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroups([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroups([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6624,7 +6624,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6633,7 +6633,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6642,7 +6642,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="group"></param>
@@ -6651,7 +6651,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="groupString">[length: bufSize]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
             [CLSCompliant(false)]
-            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString) { throw new NotImplementedException(); }
+            public static unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder groupString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_name_gen_delete]</summary>
             /// <param name="identifier"></param>
@@ -6910,7 +6910,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6920,7 +6920,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] out Int32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out Int32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6930,7 +6930,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] Int32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] Int32* counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6940,7 +6940,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32[] counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32[] counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6950,7 +6950,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] out UInt32 counterList) { throw new NotImplementedException(); }
+            public static void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] out UInt32 counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_performance_monitor]</summary>
             /// <param name="monitor"></param>
@@ -6960,7 +6960,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="counterList">[length: numCounters]</param>
             [AutoGenerated(Category = "AMD_performance_monitor", Version = "", EntryPoint = "glSelectPerfMonitorCountersAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList) { throw new NotImplementedException(); }
+            public static unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -6968,7 +6968,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, Single[] val) { throw new NotImplementedException(); }
+            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, [CountAttribute(Count = 2)] Single[] val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -6976,7 +6976,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, ref Single val) { throw new NotImplementedException(); }
+            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, [CountAttribute(Count = 2)] ref Single val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -6984,7 +6984,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, Single* val) { throw new NotImplementedException(); }
+            public static unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, [CountAttribute(Count = 2)] Single* val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -6992,7 +6992,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, Single[] val) { throw new NotImplementedException(); }
+            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, [CountAttribute(Count = 2)] Single[] val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -7000,7 +7000,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, ref Single val) { throw new NotImplementedException(); }
+            public static void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, [CountAttribute(Count = 2)] ref Single val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_sample_positions]</summary>
             /// <param name="pname"></param>
@@ -7008,7 +7008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="val">[length: 2]</param>
             [AutoGenerated(Category = "AMD_sample_positions", Version = "", EntryPoint = "glSetMultisamplefvAMD")]
             [CLSCompliant(false)]
-            public static unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, Single* val) { throw new NotImplementedException(); }
+            public static unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, [CountAttribute(Count = 2)] Single* val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_stencil_operation_extended]</summary>
             /// <param name="face"></param>
@@ -7141,55 +7141,55 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glDeleteFencesAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7199,7 +7199,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7209,7 +7209,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7222,7 +7222,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7235,7 +7235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7248,7 +7248,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7261,7 +7261,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7274,7 +7274,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+            public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Delete vertex array objects
@@ -7287,7 +7287,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glDeleteVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7362,42 +7362,42 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glElementPointerAPPLE")]
-            public static void ElementPointer(OpenTK.Graphics.OpenGL.AppleElementArray type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void ElementPointer(OpenTK.Graphics.OpenGL.AppleElementArray type, [CountAttribute(Computed = "type")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glElementPointerAPPLE")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute] T1[] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glElementPointerAPPLE")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glElementPointerAPPLE")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glElementPointerAPPLE")]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -7467,14 +7467,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
-            public static void FlushVertexArrayRange(Int32 length, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void FlushVertexArrayRange(Int32 length, [OutAttribute, CountAttribute(Parameter = "length")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_range]</summary>
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[] pointer)
+            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -7483,7 +7483,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -7492,7 +7492,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -7500,7 +7500,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
-            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -7514,42 +7514,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "APPLE_fence", Version = "", EntryPoint = "glGenFencesAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7569,7 +7569,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7582,7 +7582,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7595,7 +7595,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7608,7 +7608,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7621,7 +7621,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+            public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_object]
             /// Generate vertex array object names
@@ -7634,68 +7634,68 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "", EntryPoint = "glGenVertexArraysAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+            public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
             /// <param name="name"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "APPLE_object_purgeable", Version = "", EntryPoint = "glGetObjectParameterivAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_texture_range]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glGetTexParameterPointervAPPLE")]
-            public static void GetTexParameterPointer(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterPointer(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_texture_range]</summary>
             /// <param name="target"></param>
@@ -7703,7 +7703,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glGetTexParameterPointervAPPLE")]
             [CLSCompliant(false)]
-            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -7713,7 +7713,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glGetTexParameterPointervAPPLE")]
             [CLSCompliant(false)]
-            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -7723,7 +7723,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glGetTexParameterPointervAPPLE")]
             [CLSCompliant(false)]
-            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -7732,7 +7732,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glGetTexParameterPointervAPPLE")]
-            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -7789,10 +7789,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, Double[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7801,10 +7801,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, ref Double points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7813,10 +7813,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib1(Int32 index, Int32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7825,10 +7825,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, Double[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7837,10 +7837,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, ref Double points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7849,10 +7849,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1dAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7861,10 +7861,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, Single[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7873,10 +7873,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, ref Single points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7885,10 +7885,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib1(Int32 index, Int32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7897,10 +7897,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, Single[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7909,10 +7909,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, ref Single points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7921,10 +7921,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="u2"></param>
             /// <param name="stride"></param>
             /// <param name="order"></param>
-            /// <param name="points">[length: size,stride,order]</param>
+            /// <param name="points">[length: COMPSIZE(size,stride,order)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib1fAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib1(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7937,10 +7937,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7953,10 +7953,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7969,10 +7969,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib2(Int32 index, Int32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -7985,10 +7985,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8001,10 +8001,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8017,10 +8017,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2dAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8033,10 +8033,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8049,10 +8049,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8065,10 +8065,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib2(Int32 index, Int32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8081,10 +8081,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8097,10 +8097,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points) { throw new NotImplementedException(); }
+            public static void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
             /// <param name="index"></param>
@@ -8113,10 +8113,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2"></param>
             /// <param name="vstride"></param>
             /// <param name="vorder"></param>
-            /// <param name="points">[length: size,ustride,uorder,vstride,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(size,ustride,uorder,vstride,vorder)]</param>
             [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "", EntryPoint = "glMapVertexAttrib2fAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void MapVertexAttrib2(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8126,7 +8126,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8136,7 +8136,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8146,7 +8146,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8155,7 +8155,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8164,7 +8164,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8173,7 +8173,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8185,7 +8185,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8197,7 +8197,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8209,7 +8209,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8221,7 +8221,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8233,7 +8233,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8245,7 +8245,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8256,7 +8256,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8267,7 +8267,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8278,7 +8278,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8289,7 +8289,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] Int32[] first, [CountAttribute(Parameter = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8300,7 +8300,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] ref Int32 first, [CountAttribute(Parameter = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_element_array]</summary>
             /// <param name="mode"></param>
@@ -8311,7 +8311,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="primcount"></param>
             [AutoGenerated(Category = "APPLE_element_array", Version = "", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_object_purgeable]</summary>
             /// <param name="objectType"></param>
@@ -8388,7 +8388,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glTextureRangeAPPLE")]
-            public static void TextureRange(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void TextureRange(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_texture_range]</summary>
             /// <param name="target"></param>
@@ -8396,7 +8396,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glTextureRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute] T2[] pointer)
+            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8406,7 +8406,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glTextureRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8416,7 +8416,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glTextureRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8425,7 +8425,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_texture_range", Version = "", EntryPoint = "glTextureRangeAPPLE")]
-            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8439,14 +8439,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeAPPLE")]
-            public static void VertexArrayRange(Int32 length, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexArrayRange(Int32 length, [OutAttribute, CountAttribute(Parameter = "length")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: APPLE_vertex_array_range]</summary>
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -8455,7 +8455,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -8464,7 +8464,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeAPPLE")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -8472,7 +8472,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeAPPLE")]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -8779,7 +8779,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
-            public static void BufferData(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageArb usage) { throw new NotImplementedException(); }
+            public static void BufferData(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageArb usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Creates and initializes a buffer object's data store
@@ -8798,7 +8798,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8819,7 +8819,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8840,7 +8840,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8860,7 +8860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8880,7 +8880,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
-            public static void BufferData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageArb usage) { throw new NotImplementedException(); }
+            public static void BufferData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageArb usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Creates and initializes a buffer object's data store
@@ -8899,7 +8899,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8920,7 +8920,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8941,7 +8941,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
             [CLSCompliant(false)]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8961,7 +8961,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferDataARB")]
-            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
+            public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -8989,7 +8989,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the new data that will be copied into the data store.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
-            public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+            public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Updates a subset of a buffer object's data store
@@ -9008,7 +9008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9029,7 +9029,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9050,7 +9050,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9070,7 +9070,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the new data that will be copied into the data store.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9090,7 +9090,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the new data that will be copied into the data store.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
-            public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+            public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Updates a subset of a buffer object's data store
@@ -9109,7 +9109,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9130,7 +9130,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9151,7 +9151,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9171,7 +9171,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the new data that will be copied into the data store.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glBufferSubDataARB")]
-            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -9223,7 +9223,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32[] length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -9232,7 +9232,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(Int32 shader, Int32 count, String[] path, ref Int32 length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -9241,7 +9241,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static unsafe void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -9250,7 +9250,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32[] length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -9259,7 +9259,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, ref Int32 length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -9268,7 +9268,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static unsafe void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a one-dimensional texture image in a compressed format
@@ -9295,7 +9295,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage1DARB")]
-            public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a one-dimensional texture image in a compressed format
@@ -9323,7 +9323,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9353,7 +9353,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9383,7 +9383,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9412,7 +9412,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage1DARB")]
-            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+            public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9444,7 +9444,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage2DARB")]
-            public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a two-dimensional texture image in a compressed format
@@ -9475,7 +9475,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9508,7 +9508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9541,7 +9541,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9573,7 +9573,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage2DARB")]
-            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -9608,7 +9608,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage3DARB")]
-            public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a three-dimensional texture image in a compressed format
@@ -9642,7 +9642,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -9678,7 +9678,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -9714,7 +9714,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -9749,7 +9749,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexImage3DARB")]
-            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -9778,7 +9778,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage1DARB")]
-            public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a one-dimensional texture subimage in a compressed format
@@ -9806,7 +9806,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9836,7 +9836,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9866,7 +9866,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage1DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9895,7 +9895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage1DARB")]
-            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+            public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -9930,7 +9930,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage2DARB")]
-            public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a two-dimensional texture subimage in a compressed format
@@ -9964,7 +9964,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -10000,7 +10000,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -10036,7 +10036,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage2DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -10071,7 +10071,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage2DARB")]
-            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+            public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -10112,7 +10112,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage3DARB")]
-            public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+            public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Specify a three-dimensional texture subimage in a compressed format
@@ -10152,7 +10152,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -10194,7 +10194,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -10236,7 +10236,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage3DARB")]
             [CLSCompliant(false)]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -10277,7 +10277,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the compressed image data in memory.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glCompressedTexSubImage3DARB")]
-            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+            public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -10349,11 +10349,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
-            public static void DebugMessageCallback(DebugProcArb callback, IntPtr userParam) { throw new NotImplementedException(); }
+            public static void DebugMessageCallback(DebugProcArb callback, [CountAttribute(Computed = "callback")] IntPtr userParam) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Specify a callback to receive debugging messages from the GL
@@ -10361,12 +10361,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -10376,12 +10376,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[,] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -10391,12 +10391,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,,] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[,,] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -10406,11 +10406,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] ref T1 userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] ref T1 userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -10437,7 +10437,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -10462,7 +10462,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -10487,7 +10487,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -10512,7 +10512,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -10537,7 +10537,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -10562,7 +10562,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -10587,7 +10587,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageInsertARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, Int32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, Int32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -10612,7 +10612,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageInsertARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, UInt32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, UInt32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10622,7 +10622,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10632,7 +10632,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10645,7 +10645,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10658,7 +10658,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10671,7 +10671,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10684,7 +10684,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10697,7 +10697,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+            public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Delete named buffer objects
@@ -10710,13 +10710,13 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glDeleteBuffersARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glDeleteNamedStringARB")]
-            public static void DeleteNamedString(Int32 namelen, String name) { throw new NotImplementedException(); }
+            public static void DeleteNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
@@ -10738,7 +10738,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram([CountAttribute(Parameter = "n")] Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10748,7 +10748,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(UInt32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram([CountAttribute(Parameter = "n")] UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10759,7 +10759,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, Int32[] programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10770,7 +10770,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, ref Int32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10781,7 +10781,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgram(Int32 n, Int32* programs) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10792,7 +10792,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, UInt32[] programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10803,7 +10803,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, ref UInt32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Deletes a program object
@@ -10814,7 +10814,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glDeleteProgramsARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgram(Int32 n, UInt32* programs) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10824,7 +10824,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10834,7 +10834,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10847,7 +10847,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10860,7 +10860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10873,7 +10873,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10886,7 +10886,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10899,7 +10899,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Delete named query objects
@@ -10912,7 +10912,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glDeleteQueriesARB")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11010,7 +11010,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_buffers", Version = "", EntryPoint = "glDrawBuffersARB")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.ArbDrawBuffers[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.ArbDrawBuffers[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -11023,7 +11023,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_buffers", Version = "", EntryPoint = "glDrawBuffersARB")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.ArbDrawBuffers bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL.ArbDrawBuffers bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -11036,7 +11036,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_buffers", Version = "", EntryPoint = "glDrawBuffersARB")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.ArbDrawBuffers* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.ArbDrawBuffers* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -11050,7 +11050,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11058,7 +11058,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -11072,7 +11072,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11081,7 +11081,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11097,7 +11097,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11106,7 +11106,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11122,7 +11122,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11131,7 +11131,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11147,7 +11147,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11155,7 +11155,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11171,14 +11171,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -11192,7 +11192,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11200,7 +11200,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11216,7 +11216,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11224,7 +11224,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11240,7 +11240,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -11248,7 +11248,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11264,14 +11264,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "ARB_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedARB")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -11420,7 +11420,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+            public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Generate buffer object names
@@ -11433,7 +11433,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+            public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Generate buffer object names
@@ -11446,7 +11446,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+            public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Generate buffer object names
@@ -11459,7 +11459,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+            public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Generate buffer object names
@@ -11472,7 +11472,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+            public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Generate buffer object names
@@ -11485,7 +11485,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGenBuffersARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+            public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
@@ -11497,42 +11497,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] Int32[] programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] out Int32 programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgram(Int32 n, [OutAttribute] Int32* programs) { throw new NotImplementedException(); }
+            public static unsafe void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] UInt32[] programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] out UInt32 programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGenProgramsARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgram(Int32 n, [OutAttribute] UInt32* programs) { throw new NotImplementedException(); }
+            public static unsafe void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11552,7 +11552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11565,7 +11565,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11578,7 +11578,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11591,7 +11591,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11604,7 +11604,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Generate query object names
@@ -11617,7 +11617,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGenQueriesARB")]
             [CLSCompliant(false)]
-            public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_shader]
             /// Returns information about an active attribute variable for the specified program object
@@ -11645,7 +11645,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_shader", Version = "", EntryPoint = "glGetActiveAttribARB")]
             [CLSCompliant(false)]
-            public static void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_shader]
             /// Returns information about an active attribute variable for the specified program object
@@ -11673,7 +11673,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_shader", Version = "", EntryPoint = "glGetActiveAttribARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_shader]
             /// Returns information about an active attribute variable for the specified program object
@@ -11701,7 +11701,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_shader", Version = "", EntryPoint = "glGetActiveAttribARB")]
             [CLSCompliant(false)]
-            public static void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_shader]
             /// Returns information about an active attribute variable for the specified program object
@@ -11729,7 +11729,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_shader", Version = "", EntryPoint = "glGetActiveAttribARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns information about an active uniform variable for the specified program object
@@ -11757,7 +11757,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetActiveUniformARB")]
             [CLSCompliant(false)]
-            public static void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns information about an active uniform variable for the specified program object
@@ -11785,7 +11785,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetActiveUniformARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns information about an active uniform variable for the specified program object
@@ -11813,7 +11813,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetActiveUniformARB")]
             [CLSCompliant(false)]
-            public static void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns information about an active uniform variable for the specified program object
@@ -11841,7 +11841,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetActiveUniformARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11850,7 +11850,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] obj) { throw new NotImplementedException(); }
+            public static void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11859,7 +11859,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 obj) { throw new NotImplementedException(); }
+            public static void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11868,7 +11868,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* obj) { throw new NotImplementedException(); }
+            public static unsafe void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11877,7 +11877,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] obj) { throw new NotImplementedException(); }
+            public static void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11886,7 +11886,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 obj) { throw new NotImplementedException(); }
+            public static void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="containerObj"></param>
@@ -11895,7 +11895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="obj">[length: maxCount]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetAttachedObjectsARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* obj) { throw new NotImplementedException(); }
+            public static unsafe void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* obj) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_shader]
             /// Returns the location of an attribute variable
@@ -11932,13 +11932,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Return parameters of a buffer object
@@ -11949,13 +11949,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Return parameters of a buffer object
@@ -11966,13 +11966,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Return parameters of a buffer object
@@ -11983,12 +11983,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Return parameters of a buffer object
@@ -11999,12 +11999,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Return parameters of a buffer object
@@ -12015,12 +12015,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferParameterivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]</summary>
             /// <param name="target"></param>
@@ -12028,7 +12028,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
-            public static void GetBufferPointer(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetBufferPointer(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]</summary>
             /// <param name="target"></param>
@@ -12037,7 +12037,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12048,7 +12048,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12059,7 +12059,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12069,7 +12069,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [Obsolete("Use BufferTargetArb overload instead")]
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12078,7 +12078,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
-            public static void GetBufferPointer(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetBufferPointer(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]</summary>
             /// <param name="target"></param>
@@ -12086,7 +12086,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12096,7 +12096,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12106,7 +12106,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
             [CLSCompliant(false)]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12115,7 +12115,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferPointervARB")]
-            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12135,7 +12135,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the location where buffer object data is returned.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
-            public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Returns a subset of a buffer object's data store
@@ -12154,7 +12154,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12175,7 +12175,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12196,7 +12196,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12216,7 +12216,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the location where buffer object data is returned.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12236,7 +12236,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the location where buffer object data is returned.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
-            public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]
             /// Returns a subset of a buffer object's data store
@@ -12255,7 +12255,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12276,7 +12276,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12297,7 +12297,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
             [CLSCompliant(false)]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12317,7 +12317,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the location where buffer object data is returned.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "", EntryPoint = "glGetBufferSubDataARB")]
-            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12330,11 +12330,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level">
             /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
             /// </param>
-            /// <param name="img">[length: target,level]
+            /// <param name="img">[length: COMPSIZE(target,level)]
             /// Returns the compressed texture image.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glGetCompressedTexImageARB")]
-            public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_compression]
             /// Return a compressed texture image
@@ -12345,12 +12345,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level">
             /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
             /// </param>
-            /// <param name="img">[length: target,level]
+            /// <param name="img">[length: COMPSIZE(target,level)]
             /// Returns the compressed texture image.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glGetCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[] img)
+            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[] img)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12363,12 +12363,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level">
             /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
             /// </param>
-            /// <param name="img">[length: target,level]
+            /// <param name="img">[length: COMPSIZE(target,level)]
             /// Returns the compressed texture image.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glGetCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,] img)
+            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,] img)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12381,12 +12381,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level">
             /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
             /// </param>
-            /// <param name="img">[length: target,level]
+            /// <param name="img">[length: COMPSIZE(target,level)]
             /// Returns the compressed texture image.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glGetCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,,] img)
+            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,,] img)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12399,11 +12399,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level">
             /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
             /// </param>
-            /// <param name="img">[length: target,level]
+            /// <param name="img">[length: COMPSIZE(target,level)]
             /// Returns the compressed texture image.
             /// </param>
             [AutoGenerated(Category = "ARB_texture_compression", Version = "", EntryPoint = "glGetCompressedTexImageARB")]
-            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] ref T2 img)
+            public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] ref T2 img)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -12436,7 +12436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -12467,7 +12467,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -12498,7 +12498,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -12529,7 +12529,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -12560,7 +12560,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -12591,7 +12591,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusARB")]
@@ -12629,7 +12629,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="infoLog">[length: maxLength]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetInfoLogARB")]
             [CLSCompliant(false)]
-            public static void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
@@ -12638,7 +12638,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="infoLog">[length: maxLength]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetInfoLogARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
@@ -12647,7 +12647,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="infoLog">[length: maxLength]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetInfoLogARB")]
             [CLSCompliant(false)]
-            public static void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
@@ -12656,7 +12656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="infoLog">[length: maxLength]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetInfoLogARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
@@ -12666,7 +12666,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] out Int32 stringlen, [OutAttribute] StringBuilder @string) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
@@ -12676,34 +12676,34 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] Int32* stringlen, [OutAttribute] StringBuilder @string) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12712,7 +12712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
-            public static void GetnColorTable(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+            public static void GetnColorTable(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12722,7 +12722,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12734,7 +12734,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12746,7 +12746,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12757,7 +12757,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12767,7 +12767,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
-            public static void GetnCompressedTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetnCompressedTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12776,7 +12776,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12787,7 +12787,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12798,7 +12798,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,,] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[,,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12808,7 +12808,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] ref T3 img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T3 img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -12819,7 +12819,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
-            public static void GetnConvolutionFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+            public static void GetnConvolutionFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12829,7 +12829,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12841,7 +12841,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12853,7 +12853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12864,7 +12864,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -12876,7 +12876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
-            public static void GetnHistogram(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetnHistogram(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12887,7 +12887,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -12900,7 +12900,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -12913,7 +12913,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -12925,7 +12925,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -12936,7 +12936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Double[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12945,7 +12945,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Double v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12954,7 +12954,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Double* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12963,7 +12963,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Single[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12972,7 +12972,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Single v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12981,7 +12981,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Single* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12990,7 +12990,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Int32[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -12999,7 +12999,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Int32 v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13008,7 +13008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13018,7 +13018,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
-            public static void GetnMinmax(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetnMinmax(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13029,7 +13029,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13042,7 +13042,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13055,7 +13055,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13067,7 +13067,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13077,7 +13077,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Single[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13085,7 +13085,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Single values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13093,7 +13093,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Single* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13101,7 +13101,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13109,7 +13109,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13117,7 +13117,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13125,7 +13125,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt32[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13133,7 +13133,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out UInt32 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13141,7 +13141,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13149,7 +13149,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int16[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int16[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13157,7 +13157,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Int16 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int16 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13165,7 +13165,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int16* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int16* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13173,7 +13173,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt16[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13181,7 +13181,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out UInt16 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt16 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -13189,7 +13189,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt16* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
@@ -13201,21 +13201,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte[] pattern) { throw new NotImplementedException(); }
+            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte[] pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="bufSize"></param>
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute] out Byte pattern) { throw new NotImplementedException(); }
+            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Byte pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="bufSize"></param>
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte* pattern) { throw new NotImplementedException(); }
+            public static unsafe void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte* pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13227,7 +13227,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="column">[length: columnBufSize]</param>
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
-            public static void GetnSeparableFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [OutAttribute] IntPtr row, Int32 columnBufSize, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span) { throw new NotImplementedException(); }
+            public static void GetnSeparableFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [OutAttribute, CountAttribute(Parameter = "rowBufSize")] IntPtr row, Int32 columnBufSize, [OutAttribute, CountAttribute(Parameter = "columnBufSize")] IntPtr column, [OutAttribute, CountAttribute(Count = 0)] IntPtr span) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13240,7 +13240,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[] column, [InAttribute, OutAttribute] T7[] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -13257,7 +13257,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,] column, [InAttribute, OutAttribute] T7[,] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[,] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[,] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[,] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -13274,7 +13274,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,,] column, [InAttribute, OutAttribute] T7[,,] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[,,] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[,,] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[,,] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -13290,7 +13290,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="column">[length: columnBufSize]</param>
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] ref T4 row, Int32 columnBufSize, [InAttribute, OutAttribute] ref T6 column, [InAttribute, OutAttribute] ref T7 span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] ref T4 row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] ref T6 column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] ref T7 span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -13304,7 +13304,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
-            public static void GetnTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetnTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -13315,7 +13315,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13328,7 +13328,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13341,7 +13341,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13353,7 +13353,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -13364,7 +13364,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13373,7 +13373,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13382,7 +13382,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13391,7 +13391,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13400,7 +13400,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13409,7 +13409,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13418,7 +13418,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13427,7 +13427,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13436,7 +13436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13445,7 +13445,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13454,7 +13454,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13463,7 +13463,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13472,7 +13472,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13481,7 +13481,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13490,7 +13490,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13499,7 +13499,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13508,7 +13508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13517,7 +13517,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13526,7 +13526,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13535,7 +13535,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -13544,103 +13544,103 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="obj"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetObjectParameterivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13648,7 +13648,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13656,7 +13656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13664,7 +13664,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13672,7 +13672,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13680,7 +13680,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13688,7 +13688,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13697,7 +13697,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13706,7 +13706,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13715,7 +13715,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13724,7 +13724,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13733,7 +13733,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13742,7 +13742,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13750,7 +13750,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13758,7 +13758,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13766,7 +13766,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13774,7 +13774,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13782,7 +13782,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13790,7 +13790,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13799,7 +13799,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13808,7 +13808,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13817,7 +13817,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13826,7 +13826,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13835,7 +13835,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13844,7 +13844,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramEnvParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Returns a parameter from a program object
@@ -13860,7 +13860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramivARB")]
             [CLSCompliant(false)]
-            public static void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Returns a parameter from a program object
@@ -13876,7 +13876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13884,7 +13884,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13892,7 +13892,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13900,7 +13900,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13908,7 +13908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13916,7 +13916,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13924,7 +13924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13933,7 +13933,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13942,7 +13942,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13951,7 +13951,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13960,7 +13960,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13969,7 +13969,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13978,7 +13978,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13986,7 +13986,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -13994,7 +13994,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14002,7 +14002,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14010,7 +14010,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14018,7 +14018,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14026,7 +14026,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14035,7 +14035,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14044,7 +14044,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14053,7 +14053,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14062,7 +14062,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14071,7 +14071,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -14080,77 +14080,77 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramLocalParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: target,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramStringARB")]
-            public static void GetProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] IntPtr @string) { throw new NotImplementedException(); }
+            public static void GetProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Computed = "target,pname")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: target,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramStringARB")]
             [CLSCompliant(false)]
-            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute] T2[] @string)
+            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Computed = "target,pname")] T2[] @string)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: target,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramStringARB")]
             [CLSCompliant(false)]
-            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute] T2[,] @string)
+            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Computed = "target,pname")] T2[,] @string)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: target,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramStringARB")]
             [CLSCompliant(false)]
-            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute] T2[,,] @string)
+            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Computed = "target,pname")] T2[,,] @string)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: target,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glGetProgramStringARB")]
-            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute] ref T2 @string)
+            public static void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Computed = "target,pname")] ref T2 @string)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryivARB")]
             [CLSCompliant(false)]
-            public static void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryivARB")]
             [CLSCompliant(false)]
-            public static void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14161,12 +14161,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14177,12 +14177,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14193,12 +14193,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14209,12 +14209,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14225,12 +14225,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14241,12 +14241,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14257,12 +14257,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectuivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14273,12 +14273,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectuivARB")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_occlusion_query]
             /// Return parameters of a query object
@@ -14289,12 +14289,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "ARB_occlusion_query", Version = "", EntryPoint = "glGetQueryObjectuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the source code string from a shader object
@@ -14313,7 +14313,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the source code string from a shader object
@@ -14332,7 +14332,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetShaderSourceARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the source code string from a shader object
@@ -14351,7 +14351,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the source code string from a shader object
@@ -14370,7 +14370,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetShaderSourceARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+            public static unsafe void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] StringBuilder source) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="texture"></param>
@@ -14407,12 +14407,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14423,12 +14423,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14439,12 +14439,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14455,12 +14455,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14471,12 +14471,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14487,12 +14487,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14503,12 +14503,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14519,12 +14519,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14535,12 +14535,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14551,12 +14551,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14567,12 +14567,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the value of a uniform variable
@@ -14583,12 +14583,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: programObj,location]
+            /// <param name="@params">[length: COMPSIZE(programObj,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glGetUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Returns the location of a uniform variable
@@ -14630,7 +14630,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14646,7 +14646,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14662,7 +14662,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14678,7 +14678,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14694,7 +14694,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14710,7 +14710,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14726,7 +14726,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14742,7 +14742,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14758,7 +14758,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14774,7 +14774,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14790,7 +14790,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14806,7 +14806,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14822,7 +14822,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14838,7 +14838,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14854,7 +14854,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14870,7 +14870,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14886,7 +14886,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Return a generic vertex attribute parameter
@@ -14902,7 +14902,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="index"></param>
@@ -14958,7 +14958,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
@@ -14966,7 +14966,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -14976,7 +14976,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -14986,7 +14986,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -14996,7 +14996,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -15006,7 +15006,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
@@ -15014,7 +15014,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -15024,7 +15024,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -15034,7 +15034,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -15044,7 +15044,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glGetVertexAttribPointervARB")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -15084,7 +15084,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glIsNamedStringARB")]
-            public static bool IsNamedString(Int32 namelen, String name) { throw new NotImplementedException(); }
+            public static bool IsNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]
             /// Determines if a name corresponds to a program object
@@ -15166,7 +15166,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrix(Double[] m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Replace the current matrix with the specified row-major ordered matrix
@@ -15176,7 +15176,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrix(ref Double m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Replace the current matrix with the specified row-major ordered matrix
@@ -15186,7 +15186,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static unsafe void LoadTransposeMatrix(Double* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadTransposeMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Replace the current matrix with the specified row-major ordered matrix
@@ -15196,7 +15196,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrix(Single[] m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Replace the current matrix with the specified row-major ordered matrix
@@ -15206,7 +15206,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrix(ref Single m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Replace the current matrix with the specified row-major ordered matrix
@@ -15216,7 +15216,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glLoadTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static unsafe void LoadTransposeMatrix(Single* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadTransposeMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="handle"></param>
@@ -15297,18 +15297,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerARB")]
-            public static void MatrixIndexPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void MatrixIndexPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -15316,10 +15316,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -15327,10 +15327,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -15338,9 +15338,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexPointerARB")]
-            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -15349,105 +15349,105 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexubvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, Byte[] indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Byte[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexubvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, ref Byte indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] ref Byte indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixIndex(Int32 size, Byte* indices) { throw new NotImplementedException(); }
+            public static unsafe void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Byte* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, Int32[] indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Int32[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, ref Int32 indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] ref Int32 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixIndex(Int32 size, Int32* indices) { throw new NotImplementedException(); }
+            public static unsafe void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Int32* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, UInt32[] indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] UInt32[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, ref UInt32 indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] ref UInt32 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixIndex(Int32 size, UInt32* indices) { throw new NotImplementedException(); }
+            public static unsafe void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] UInt32* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, Int16[] indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Int16[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, ref Int16 indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] ref Int16 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixIndex(Int32 size, Int16* indices) { throw new NotImplementedException(); }
+            public static unsafe void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] Int16* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, UInt16[] indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] UInt16[] indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static void MatrixIndex(Int32 size, ref UInt16 indices) { throw new NotImplementedException(); }
+            public static void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] ref UInt16 indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_matrix_palette]</summary>
             /// <param name="size"></param>
             /// <param name="indices">[length: size]</param>
             [AutoGenerated(Category = "ARB_matrix_palette", Version = "", EntryPoint = "glMatrixIndexusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixIndex(Int32 size, UInt16* indices) { throw new NotImplementedException(); }
+            public static unsafe void MatrixIndex(Int32 size, [CountAttribute(Parameter = "size")] UInt16* indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_sample_shading]
             /// Specifies minimum rate at which sample shaing takes place
@@ -15500,7 +15500,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord1dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15525,7 +15525,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord1fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15550,7 +15550,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord1ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15575,7 +15575,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord1svARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15603,7 +15603,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15616,7 +15616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15629,7 +15629,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15657,7 +15657,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15670,7 +15670,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15683,7 +15683,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15711,7 +15711,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15724,7 +15724,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15737,7 +15737,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15765,7 +15765,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15778,7 +15778,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15791,7 +15791,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord2svARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15822,7 +15822,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15835,7 +15835,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15848,7 +15848,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15879,7 +15879,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15892,7 +15892,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15905,7 +15905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15936,7 +15936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15949,7 +15949,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15962,7 +15962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -15993,7 +15993,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16006,7 +16006,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16019,7 +16019,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord3svARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16053,7 +16053,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16066,7 +16066,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4dvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16079,7 +16079,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16113,7 +16113,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16126,7 +16126,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4fvARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16139,7 +16139,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16173,7 +16173,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16186,7 +16186,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4ivARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16199,7 +16199,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16233,7 +16233,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16246,7 +16246,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4svARB")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_multitexture]
             /// Set the current texture coordinates
@@ -16259,7 +16259,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_multitexture", Version = "", EntryPoint = "glMultiTexCoord4svARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16269,7 +16269,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrix(Double[] m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16279,7 +16279,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrix(ref Double m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16289,7 +16289,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixdARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultTransposeMatrix(Double* m) { throw new NotImplementedException(); }
+            public static unsafe void MultTransposeMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16299,7 +16299,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrix(Single[] m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16309,7 +16309,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrix(ref Single m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_transpose_matrix]
             /// Multiply the current matrix with the specified row-major ordered matrix
@@ -16319,7 +16319,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_transpose_matrix", Version = "", EntryPoint = "glMultTransposeMatrixfARB")]
             [CLSCompliant(false)]
-            public static unsafe void MultTransposeMatrix(Single* m) { throw new NotImplementedException(); }
+            public static unsafe void MultTransposeMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_sparse_buffer]</summary>
             /// <param name="buffer"></param>
@@ -16346,7 +16346,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stringlen"></param>
             /// <param name="@string">[length: stringlen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glNamedStringARB")]
-            public static void NamedString(OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude type, Int32 namelen, String name, Int32 stringlen, String @string) { throw new NotImplementedException(); }
+            public static void NamedString(OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude type, Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 stringlen, [CountAttribute(Parameter = "stringlen")] String @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_point_parameters]
             /// Specify point parameters
@@ -16366,12 +16366,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "ARB_point_parameters", Version = "", EntryPoint = "glPointParameterfvARB")]
             [CLSCompliant(false)]
-            public static void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_point_parameters]
             /// Specify point parameters
@@ -16379,12 +16379,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "ARB_point_parameters", Version = "", EntryPoint = "glPointParameterfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16414,7 +16414,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16422,7 +16422,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16430,7 +16430,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16438,7 +16438,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16446,7 +16446,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16454,7 +16454,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16484,7 +16484,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16492,7 +16492,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16500,7 +16500,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16508,7 +16508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16516,7 +16516,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16524,7 +16524,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramEnvParameter4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16554,7 +16554,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16562,7 +16562,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16570,7 +16570,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16578,7 +16578,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16586,7 +16586,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16594,7 +16594,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16624,7 +16624,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16632,7 +16632,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16640,7 +16640,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16648,7 +16648,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16656,7 +16656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16664,7 +16664,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramLocalParameter4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_geometry_shader4]
             /// Specify a parameter for a program object
@@ -16704,7 +16704,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="len"></param>
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
-            public static void ProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, IntPtr @string) { throw new NotImplementedException(); }
+            public static void ProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16713,7 +16713,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute] T3[] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16724,7 +16724,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute] T3[,] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16735,7 +16735,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute] T3[,,] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[,,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16745,7 +16745,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="len"></param>
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute] ref T3 @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.All format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] ref T3 @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16756,7 +16756,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
-            public static void ProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, IntPtr @string) { throw new NotImplementedException(); }
+            public static void ProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_fragment_program|ARB_vertex_program]</summary>
             /// <param name="target"></param>
@@ -16766,7 +16766,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute] T3[] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16778,7 +16778,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute] T3[,] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16790,7 +16790,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
             [CLSCompliant(false)]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute] T3[,,] @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T3[,,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16801,7 +16801,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "ARB_fragment_program|ARB_vertex_program", Version = "", EntryPoint = "glProgramStringARB")]
-            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute] ref T3 @string)
+            public static void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] ref T3 @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -16828,7 +16828,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -16837,7 +16837,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, ref Int64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -16846,7 +16846,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -16855,7 +16855,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -16864,7 +16864,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, ref UInt64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -16873,7 +16873,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -16886,7 +16886,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -16900,7 +16900,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -16916,7 +16916,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -16932,7 +16932,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -16947,7 +16947,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -16961,7 +16961,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -16974,7 +16974,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -16989,7 +16989,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -17004,7 +17004,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -17018,7 +17018,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -17051,7 +17051,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void ShaderSource(Int32 shaderObj, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+            public static void ShaderSource(Int32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Replaces the source code in a shader object
@@ -17070,7 +17070,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void ShaderSource(Int32 shaderObj, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+            public static void ShaderSource(Int32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Replaces the source code in a shader object
@@ -17089,7 +17089,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static unsafe void ShaderSource(Int32 shaderObj, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void ShaderSource(Int32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Replaces the source code in a shader object
@@ -17108,7 +17108,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void ShaderSource(UInt32 shaderObj, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+            public static void ShaderSource(UInt32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Replaces the source code in a shader object
@@ -17127,7 +17127,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static void ShaderSource(UInt32 shaderObj, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+            public static void ShaderSource(UInt32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Replaces the source code in a shader object
@@ -17146,7 +17146,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glShaderSourceARB")]
             [CLSCompliant(false)]
-            public static unsafe void ShaderSource(UInt32 shaderObj, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void ShaderSource(UInt32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_texture_buffer_object]
             /// Attach the storage for a buffer object to the active buffer texture
@@ -17219,7 +17219,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17235,7 +17235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17251,7 +17251,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17279,7 +17279,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17295,7 +17295,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17311,7 +17311,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform1ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17342,7 +17342,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform2fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17358,7 +17358,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform2fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17374,7 +17374,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17405,7 +17405,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform2ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17421,7 +17421,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform2ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17455,7 +17455,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17471,7 +17471,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17487,7 +17487,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17521,7 +17521,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17537,7 +17537,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17553,7 +17553,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform3ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17590,7 +17590,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17606,7 +17606,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4fvARB")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17622,7 +17622,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17659,7 +17659,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17675,7 +17675,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4ivARB")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]
             /// Specify the value of a uniform variable for the current program object
@@ -17691,7 +17691,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniform4ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17713,7 +17713,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17721,7 +17721,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17729,7 +17729,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17737,7 +17737,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17745,7 +17745,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -17753,7 +17753,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17762,7 +17762,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix2fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17771,7 +17771,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix2fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17780,7 +17780,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17789,7 +17789,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix3fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17798,7 +17798,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix3fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17807,7 +17807,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17816,7 +17816,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix4fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17825,7 +17825,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix4fvARB")]
             [CLSCompliant(false)]
-            public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shader_objects]</summary>
             /// <param name="location"></param>
@@ -17834,7 +17834,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "ARB_shader_objects", Version = "", EntryPoint = "glUniformMatrix4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_buffer_object]</summary>
             /// <param name="target"></param>
@@ -17910,7 +17910,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -17923,7 +17923,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -17962,7 +17962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -17975,7 +17975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18014,7 +18014,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18027,7 +18027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib1svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18072,7 +18072,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18085,7 +18085,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18098,7 +18098,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18111,7 +18111,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18124,7 +18124,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18137,7 +18137,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18182,7 +18182,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18195,7 +18195,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18208,7 +18208,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18221,7 +18221,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18234,7 +18234,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18247,7 +18247,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18292,7 +18292,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18305,7 +18305,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18318,7 +18318,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18331,7 +18331,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18344,7 +18344,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18357,7 +18357,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib2svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18408,7 +18408,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18421,7 +18421,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18434,7 +18434,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18447,7 +18447,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18460,7 +18460,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18473,7 +18473,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18524,7 +18524,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18537,7 +18537,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18550,7 +18550,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18563,7 +18563,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18576,7 +18576,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18589,7 +18589,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18640,7 +18640,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18653,7 +18653,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18666,7 +18666,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18679,7 +18679,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18692,7 +18692,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18705,7 +18705,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib3svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18718,7 +18718,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4bvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18731,7 +18731,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4bvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18744,7 +18744,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4bvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18801,7 +18801,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18814,7 +18814,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18827,7 +18827,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18840,7 +18840,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18853,7 +18853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18866,7 +18866,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18923,7 +18923,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18936,7 +18936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18949,7 +18949,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18962,7 +18962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18975,7 +18975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -18988,7 +18988,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19001,7 +19001,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19014,7 +19014,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19027,7 +19027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19040,7 +19040,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19053,7 +19053,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19066,112 +19066,112 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NbvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NbvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NbvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NsvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
@@ -19198,84 +19198,84 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(Int32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NuivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NuivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NusvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NusvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4N(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4NusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4N(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19332,7 +19332,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19345,7 +19345,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19358,7 +19358,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19371,7 +19371,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19384,7 +19384,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19397,7 +19397,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4svARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19410,7 +19410,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19423,7 +19423,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19436,7 +19436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19449,7 +19449,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19462,7 +19462,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19475,7 +19475,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4ubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19488,7 +19488,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4uivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19501,7 +19501,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4uivARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19514,7 +19514,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4uivARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19527,7 +19527,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4usvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19540,7 +19540,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4usvARB")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Specifies the value of a generic vertex attribute
@@ -19553,7 +19553,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttrib4usvARB")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_instanced_arrays]
             /// Modify the rate at which generic vertex attributes advance during instanced rendering
@@ -19641,12 +19641,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Define an array of generic vertex attribute data
@@ -19666,12 +19666,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19693,12 +19693,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19720,12 +19720,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19747,12 +19747,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+            public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19774,12 +19774,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_program|ARB_vertex_shader]
             /// Define an array of generic vertex attribute data
@@ -19799,12 +19799,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19826,12 +19826,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19853,12 +19853,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19880,12 +19880,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "ARB_vertex_program|ARB_vertex_shader", Version = "", EntryPoint = "glVertexAttribPointerARB")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+            public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -19899,101 +19899,101 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightbvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, SByte[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] SByte[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightbvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref SByte weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref SByte weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightbvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, SByte* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] SByte* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightdvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, Double[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] Double[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightdvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref Double weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref Double weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, Double* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] Double* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightfvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, Single[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] Single[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightfvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref Single weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref Single weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, Single* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] Single* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightivARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, Int32[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] Int32[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightivARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref Int32 weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref Int32 weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, Int32* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] Int32* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightPointerARB")]
-            public static void WeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void WeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightPointerARB")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20001,10 +20001,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightPointerARB")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20012,10 +20012,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightPointerARB")]
             [CLSCompliant(false)]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20023,9 +20023,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightPointerARB")]
-            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -20034,84 +20034,84 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightsvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, Int16[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] Int16[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightsvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref Int16 weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref Int16 weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightsvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, Int16* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] Int16* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightubvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, Byte[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] Byte[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightubvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref Byte weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref Byte weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightubvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, Byte* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] Byte* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightuivARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, UInt32[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] UInt32[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightuivARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref UInt32 weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref UInt32 weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, UInt32* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] UInt32* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightusvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, UInt16[] weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] UInt16[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightusvARB")]
             [CLSCompliant(false)]
-            public static void Weight(Int32 size, ref UInt16 weights) { throw new NotImplementedException(); }
+            public static void Weight(Int32 size, [CountAttribute(Parameter = "size")] ref UInt16 weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_vertex_blend]</summary>
             /// <param name="size"></param>
             /// <param name="weights">[length: size]</param>
             [AutoGenerated(Category = "ARB_vertex_blend", Version = "", EntryPoint = "glWeightusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void Weight(Int32 size, UInt16* weights) { throw new NotImplementedException(); }
+            public static unsafe void Weight(Int32 size, [CountAttribute(Parameter = "size")] UInt16* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20133,7 +20133,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2dvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Double[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20143,7 +20143,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2dvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Double v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20153,7 +20153,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20175,7 +20175,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2fvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Single[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20185,7 +20185,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2fvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Single v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20195,7 +20195,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20217,7 +20217,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2ivARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Int32[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20227,7 +20227,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2ivARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Int32 v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20237,7 +20237,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20259,7 +20259,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2svARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Int16[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20269,7 +20269,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2svARB")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Int16 v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20279,7 +20279,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos2svARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20304,7 +20304,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3dvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Double[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20314,7 +20314,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3dvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Double v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20324,7 +20324,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3dvARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20349,7 +20349,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3fvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Single[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20359,7 +20359,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3fvARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Single v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20369,7 +20369,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3fvARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20394,7 +20394,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3ivARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Int32[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20404,7 +20404,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3ivARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Int32 v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20414,7 +20414,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3ivARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20439,7 +20439,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3svARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Int16[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20449,7 +20449,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3svARB")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Int16 v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -20459,7 +20459,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ARB_window_pos", Version = "", EntryPoint = "glWindowPos3svARB")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         }
 
@@ -20705,7 +20705,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ATI_draw_buffers", Version = "", EntryPoint = "glDrawBuffersATI")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.AtiDrawBuffers[] bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.AtiDrawBuffers[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -20718,7 +20718,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ATI_draw_buffers", Version = "", EntryPoint = "glDrawBuffersATI")]
             [CLSCompliant(false)]
-            public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.AtiDrawBuffers bufs) { throw new NotImplementedException(); }
+            public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL.AtiDrawBuffers bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_draw_buffers]
             /// Specifies a list of color buffers to be drawn into
@@ -20731,7 +20731,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "ATI_draw_buffers", Version = "", EntryPoint = "glDrawBuffersATI")]
             [CLSCompliant(false)]
-            public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.AtiDrawBuffers* bufs) { throw new NotImplementedException(); }
+            public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.AtiDrawBuffers* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="mode"></param>
@@ -20786,42 +20786,42 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "ATI_element_array", Version = "", EntryPoint = "glElementPointerATI")]
-            public static void ElementPointer(OpenTK.Graphics.OpenGL.AtiElementArray type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void ElementPointer(OpenTK.Graphics.OpenGL.AtiElementArray type, [CountAttribute(Computed = "type")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "ATI_element_array", Version = "", EntryPoint = "glElementPointerATI")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "ATI_element_array", Version = "", EntryPoint = "glElementPointerATI")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "ATI_element_array", Version = "", EntryPoint = "glElementPointerATI")]
             [CLSCompliant(false)]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_element_array]</summary>
             /// <param name="type"></param>
-            /// <param name="pointer">[length: type]</param>
+            /// <param name="pointer">[length: COMPSIZE(type)]</param>
             [AutoGenerated(Category = "ATI_element_array", Version = "", EntryPoint = "glElementPointerATI")]
-            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute, CountAttribute(Computed = "type")] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -20859,7 +20859,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="array"></param>
@@ -20867,7 +20867,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="array"></param>
@@ -20875,7 +20875,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="array"></param>
@@ -20883,7 +20883,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20891,7 +20891,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferfvATI")]
             [CLSCompliant(false)]
-            public static void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20899,7 +20899,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20907,7 +20907,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferfvATI")]
             [CLSCompliant(false)]
-            public static void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20915,7 +20915,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20923,7 +20923,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferivATI")]
             [CLSCompliant(false)]
-            public static void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20931,7 +20931,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20939,7 +20939,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferivATI")]
             [CLSCompliant(false)]
-            public static void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -20947,7 +20947,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetObjectBufferivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
@@ -20957,45 +20957,45 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Single[] param) { throw new NotImplementedException(); }
+            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] out Single param) { throw new NotImplementedException(); }
+            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Single* param) { throw new NotImplementedException(); }
+            public static unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Int32[] param) { throw new NotImplementedException(); }
+            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] out Int32 param) { throw new NotImplementedException(); }
+            public static void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glGetTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21003,7 +21003,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21011,7 +21011,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21019,7 +21019,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21027,7 +21027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21035,7 +21035,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21043,7 +21043,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21051,7 +21051,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="id"></param>
@@ -21059,103 +21059,103 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glGetVariantArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -21186,7 +21186,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glNewObjectBufferATI")]
-            public static Int32 NewObjectBuffer(Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage) { throw new NotImplementedException(); }
+            public static Int32 NewObjectBuffer(Int32 size, [CountAttribute(Parameter = "size")] IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="size"></param>
@@ -21194,7 +21194,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="usage"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glNewObjectBufferATI")]
             [CLSCompliant(false)]
-            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
+            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T1[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -21204,7 +21204,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="usage"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glNewObjectBufferATI")]
             [CLSCompliant(false)]
-            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
+            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T1[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -21214,7 +21214,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="usage"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glNewObjectBufferATI")]
             [CLSCompliant(false)]
-            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
+            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T1[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -21223,7 +21223,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glNewObjectBufferATI")]
-            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] ref T1 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
+            public static Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T1 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -21250,42 +21250,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Byte[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Byte coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, SByte[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref SByte coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3bvATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21300,21 +21300,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3dvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Double[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3dvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Double coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3dvATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Double* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21329,21 +21329,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3fvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3fvATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3fvATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21358,21 +21358,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3ivATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3ivATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3ivATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21387,21 +21387,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3svATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int16[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3svATI")]
             [CLSCompliant(false)]
-            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords) { throw new NotImplementedException(); }
+            public static void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Int16 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glNormalStream3svATI")]
             [CLSCompliant(false)]
-            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords) { throw new NotImplementedException(); }
+            public static unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int16* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
@@ -21452,42 +21452,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static void SetFragmentShaderConstant(Int32 dst, Single[] value) { throw new NotImplementedException(); }
+            public static void SetFragmentShaderConstant(Int32 dst, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static void SetFragmentShaderConstant(Int32 dst, ref Single value) { throw new NotImplementedException(); }
+            public static void SetFragmentShaderConstant(Int32 dst, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static unsafe void SetFragmentShaderConstant(Int32 dst, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void SetFragmentShaderConstant(Int32 dst, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static void SetFragmentShaderConstant(UInt32 dst, Single[] value) { throw new NotImplementedException(); }
+            public static void SetFragmentShaderConstant(UInt32 dst, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static void SetFragmentShaderConstant(UInt32 dst, ref Single value) { throw new NotImplementedException(); }
+            public static void SetFragmentShaderConstant(UInt32 dst, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_fragment_shader]</summary>
             /// <param name="dst"></param>
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "ATI_fragment_shader", Version = "", EntryPoint = "glSetFragmentShaderConstantATI")]
             [CLSCompliant(false)]
-            public static unsafe void SetFragmentShaderConstant(UInt32 dst, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void SetFragmentShaderConstant(UInt32 dst, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_separate_stencil]
             /// Set front and/or back function and reference value for stencil testing
@@ -21547,45 +21547,45 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Single[] param) { throw new NotImplementedException(); }
+            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, ref Single param) { throw new NotImplementedException(); }
+            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] ref Single param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterfvATI")]
             [CLSCompliant(false)]
-            public static unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Single* param) { throw new NotImplementedException(); }
+            public static unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, ref Int32 param) { throw new NotImplementedException(); }
+            public static void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_envmap_bumpmap]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "", EntryPoint = "glTexBumpParameterivATI")]
             [CLSCompliant(false)]
-            public static unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_map_object_buffer]</summary>
             /// <param name="buffer"></param>
@@ -21607,7 +21607,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer(Int32 buffer, Int32 offset, Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve) { throw new NotImplementedException(); }
+            public static void UpdateObjectBuffer(Int32 buffer, Int32 offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -21617,7 +21617,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21629,7 +21629,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21641,7 +21641,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21653,7 +21653,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] ref T3 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21665,7 +21665,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer(UInt32 buffer, UInt32 offset, Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve) { throw new NotImplementedException(); }
+            public static void UpdateObjectBuffer(UInt32 buffer, UInt32 offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_array_object]</summary>
             /// <param name="buffer"></param>
@@ -21675,7 +21675,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21687,7 +21687,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21699,7 +21699,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21711,7 +21711,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="preserve"></param>
             [AutoGenerated(Category = "ATI_vertex_array_object", Version = "", EntryPoint = "glUpdateObjectBufferATI")]
             [CLSCompliant(false)]
-            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] ref T3 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
+            public static void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -21808,7 +21808,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream1dvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 1)] Double* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21821,7 +21821,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream1fvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 1)] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21834,7 +21834,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream1ivATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21847,7 +21847,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream1svATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 1)] Int16* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21861,21 +21861,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Double[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] ref Double coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2dvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Double* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21889,21 +21889,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] ref Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2fvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21917,21 +21917,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2ivATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21945,21 +21945,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Int16[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords) { throw new NotImplementedException(); }
+            public static void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] ref Int16 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream2svATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 2)] Int16* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -21974,21 +21974,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Double[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Double coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3dvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Double* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22003,21 +22003,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3fvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22032,21 +22032,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3ivATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22061,21 +22061,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int16[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords) { throw new NotImplementedException(); }
+            public static void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] ref Int16 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream3svATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 3)] Int16* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22091,21 +22091,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Double[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4dvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] ref Double coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4dvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Double* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22121,21 +22121,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4fvATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] ref Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4fvATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22151,21 +22151,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4ivATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4ivATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
@@ -22181,21 +22181,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Int16[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4svATI")]
             [CLSCompliant(false)]
-            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords) { throw new NotImplementedException(); }
+            public static void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] ref Int16 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ATI_vertex_streams]</summary>
             /// <param name="stream"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "ATI_vertex_streams", Version = "", EntryPoint = "glVertexStream4svATI")]
             [CLSCompliant(false)]
-            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords) { throw new NotImplementedException(); }
+            public static unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, [CountAttribute(Count = 4)] Int16* coords) { throw new NotImplementedException(); }
 
         }
 
@@ -22272,7 +22272,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static bool AreTexturesResident(Int32 n, Int32[] textures, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+        public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Determine if textures are loaded in texture memory
@@ -22288,7 +22288,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static bool AreTexturesResident(Int32 n, ref Int32 textures, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+        public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Determine if textures are loaded in texture memory
@@ -22304,7 +22304,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static unsafe bool AreTexturesResident(Int32 n, Int32* textures, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+        public static unsafe bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Determine if textures are loaded in texture memory
@@ -22320,7 +22320,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static bool AreTexturesResident(Int32 n, UInt32[] textures, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+        public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Determine if textures are loaded in texture memory
@@ -22336,7 +22336,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static bool AreTexturesResident(Int32 n, ref UInt32 textures, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+        public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Determine if textures are loaded in texture memory
@@ -22352,7 +22352,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
         [CLSCompliant(false)]
-        public static unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+        public static unsafe bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Render a vertex using the specified vertex array element
@@ -22832,7 +22832,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -22851,7 +22851,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -22870,7 +22870,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -22889,7 +22889,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -22908,7 +22908,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -22927,7 +22927,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -22948,7 +22948,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, Int32[] buffers, IntPtr[] offsets, IntPtr[] sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] IntPtr[] sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -22969,7 +22969,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, ref Int32 buffers, ref IntPtr offsets, ref IntPtr sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref IntPtr sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -22990,7 +22990,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, Int32* buffers, IntPtr* offsets, IntPtr* sizes) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -23011,7 +23011,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, UInt32[] buffers, IntPtr[] offsets, IntPtr[] sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] IntPtr[] sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -23032,7 +23032,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, ref UInt32 buffers, ref IntPtr offsets, ref IntPtr sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref IntPtr sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -23053,7 +23053,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, IntPtr* sizes) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Bind a user-defined varying out variable to a fragment shader color number
@@ -23064,12 +23064,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="color">
         /// The color number to bind the user-defined varying out variable to
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to modify
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
         [CLSCompliant(false)]
-        public static void BindFragDataLocation(Int32 program, Int32 color, String name) { throw new NotImplementedException(); }
+        public static void BindFragDataLocation(Int32 program, Int32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Bind a user-defined varying out variable to a fragment shader color number
@@ -23080,12 +23080,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="color">
         /// The color number to bind the user-defined varying out variable to
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to modify
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
         [CLSCompliant(false)]
-        public static void BindFragDataLocation(UInt32 program, UInt32 color, String name) { throw new NotImplementedException(); }
+        public static void BindFragDataLocation(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_blend_func_extended|VERSION_3_3]
         /// Bind a user-defined varying out variable to a fragment shader color number and index
@@ -23221,7 +23221,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(Int32 first, Int32 count, Int32[] textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -23237,7 +23237,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(Int32 first, Int32 count, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -23253,7 +23253,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindImageTextures(Int32 first, Int32 count, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -23269,7 +23269,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(UInt32 first, Int32 count, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -23285,7 +23285,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(UInt32 first, Int32 count, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -23301,7 +23301,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindImageTextures(UInt32 first, Int32 count, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Bind a program pipeline to the current context
@@ -23389,7 +23389,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(Int32 first, Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -23405,7 +23405,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(Int32 first, Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -23421,7 +23421,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void BindSamplers(Int32 first, Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -23437,7 +23437,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(UInt32 first, Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -23453,7 +23453,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(UInt32 first, Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -23469,7 +23469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void BindSamplers(UInt32 first, Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Bind a named texture to a texturing target
@@ -23511,7 +23511,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(Int32 first, Int32 count, Int32[] textures) { throw new NotImplementedException(); }
+        public static void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -23527,7 +23527,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(Int32 first, Int32 count, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -23543,7 +23543,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindTextures(Int32 first, Int32 count, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -23559,7 +23559,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(UInt32 first, Int32 count, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -23575,7 +23575,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(UInt32 first, Int32 count, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -23591,7 +23591,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindTextures(UInt32 first, Int32 count, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="unit"></param>
@@ -23711,7 +23711,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(Int32 first, Int32 count, Int32[] buffers, IntPtr[] offsets, Int32[] strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] Int32[] strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -23733,7 +23733,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(Int32 first, Int32 count, ref Int32 buffers, ref IntPtr offsets, ref Int32 strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref Int32 strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -23755,7 +23755,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void BindVertexBuffers(Int32 first, Int32 count, Int32* buffers, IntPtr* offsets, Int32* strides) { throw new NotImplementedException(); }
+        public static unsafe void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -23777,7 +23777,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(UInt32 first, Int32 count, UInt32[] buffers, IntPtr[] offsets, Int32[] strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] Int32[] strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -23799,7 +23799,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(UInt32 first, Int32 count, ref UInt32 buffers, ref IntPtr offsets, ref Int32 strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref Int32 strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -23821,7 +23821,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void BindVertexBuffers(UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, Int32* strides) { throw new NotImplementedException(); }
+        public static unsafe void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a bitmap
@@ -23844,12 +23844,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="ymove">
         /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
         /// </param>
-        /// <param name="bitmap">[length: width,height]
+        /// <param name="bitmap">[length: COMPSIZE(width,height)]
         /// Specifies the address of the bitmap image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glBitmap")]
         [CLSCompliant(false)]
-        public static void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, Byte[] bitmap) { throw new NotImplementedException(); }
+        public static void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, [CountAttribute(Computed = "width,height")] Byte[] bitmap) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a bitmap
@@ -23872,12 +23872,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="ymove">
         /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
         /// </param>
-        /// <param name="bitmap">[length: width,height]
+        /// <param name="bitmap">[length: COMPSIZE(width,height)]
         /// Specifies the address of the bitmap image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glBitmap")]
         [CLSCompliant(false)]
-        public static void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, ref Byte bitmap) { throw new NotImplementedException(); }
+        public static void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, [CountAttribute(Computed = "width,height")] ref Byte bitmap) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a bitmap
@@ -23900,12 +23900,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="ymove">
         /// Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.
         /// </param>
-        /// <param name="bitmap">[length: width,height]
+        /// <param name="bitmap">[length: COMPSIZE(width,height)]
         /// Specifies the address of the bitmap image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glBitmap")]
         [CLSCompliant(false)]
-        public static unsafe void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, Byte* bitmap) { throw new NotImplementedException(); }
+        public static unsafe void Bitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4 or ARB_imaging|VERSION_1_4]
         /// Set the blend color
@@ -24464,7 +24464,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Creates and initializes a buffer object's data store
@@ -24483,7 +24483,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24504,7 +24504,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24525,7 +24525,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24545,7 +24545,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24565,7 +24565,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Creates and initializes a buffer object's data store
@@ -24584,7 +24584,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24605,7 +24605,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24626,7 +24626,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24646,7 +24646,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24666,7 +24666,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+        public static void BufferStorage(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_buffer_storage|VERSION_4_4]
         /// Creates and initializes a buffer object's immutable data store
@@ -24685,7 +24685,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24706,7 +24706,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24727,7 +24727,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24747,7 +24747,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24767,7 +24767,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+        public static void BufferStorage(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_buffer_storage|VERSION_4_4]
         /// Creates and initializes a buffer object's immutable data store
@@ -24786,7 +24786,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24807,7 +24807,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24828,7 +24828,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24848,7 +24848,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -24868,7 +24868,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Updates a subset of a buffer object's data store
@@ -24887,7 +24887,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -24908,7 +24908,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -24929,7 +24929,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -24949,7 +24949,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -24969,7 +24969,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Updates a subset of a buffer object's data store
@@ -24988,7 +24988,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -25009,7 +25009,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -25030,7 +25030,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -25050,7 +25050,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -25083,11 +25083,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of values in lists. Symbolic constants Byte, UnsignedByte, Short, UnsignedShort, Int, UnsignedInt, Float, Gl2Bytes, Gl3Bytes, and Gl4Bytes are accepted.
         /// </param>
-        /// <param name="lists">[length: n,type]
+        /// <param name="lists">[length: COMPSIZE(n,type)]
         /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
-        public static void CallLists(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, IntPtr lists) { throw new NotImplementedException(); }
+        public static void CallLists(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [CountAttribute(Computed = "n,type")] IntPtr lists) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Execute a list of display lists
@@ -25098,12 +25098,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of values in lists. Symbolic constants Byte, UnsignedByte, Short, UnsignedShort, Int, UnsignedInt, Float, Gl2Bytes, Gl3Bytes, and Gl4Bytes are accepted.
         /// </param>
-        /// <param name="lists">[length: n,type]
+        /// <param name="lists">[length: COMPSIZE(n,type)]
         /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
         [CLSCompliant(false)]
-        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] T2[] lists)
+        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute, CountAttribute(Computed = "n,type")] T2[] lists)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -25116,12 +25116,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of values in lists. Symbolic constants Byte, UnsignedByte, Short, UnsignedShort, Int, UnsignedInt, Float, Gl2Bytes, Gl3Bytes, and Gl4Bytes are accepted.
         /// </param>
-        /// <param name="lists">[length: n,type]
+        /// <param name="lists">[length: COMPSIZE(n,type)]
         /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
         [CLSCompliant(false)]
-        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] T2[,] lists)
+        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute, CountAttribute(Computed = "n,type")] T2[,] lists)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -25134,12 +25134,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of values in lists. Symbolic constants Byte, UnsignedByte, Short, UnsignedShort, Int, UnsignedInt, Float, Gl2Bytes, Gl3Bytes, and Gl4Bytes are accepted.
         /// </param>
-        /// <param name="lists">[length: n,type]
+        /// <param name="lists">[length: COMPSIZE(n,type)]
         /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
         [CLSCompliant(false)]
-        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] T2[,,] lists)
+        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute, CountAttribute(Computed = "n,type")] T2[,,] lists)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -25152,11 +25152,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of values in lists. Symbolic constants Byte, UnsignedByte, Short, UnsignedShort, Int, UnsignedInt, Float, Gl2Bytes, Gl3Bytes, and Gl4Bytes are accepted.
         /// </param>
-        /// <param name="lists">[length: n,type]
+        /// <param name="lists">[length: COMPSIZE(n,type)]
         /// Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
-        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] ref T2 lists)
+        public static void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute, CountAttribute(Computed = "n,type")] ref T2 lists)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -25237,11 +25237,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
-        public static void ClearBufferData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill a buffer object's data store with a fixed value
@@ -25258,12 +25258,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25282,12 +25282,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25306,12 +25306,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25330,11 +25330,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -25384,12 +25384,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Single[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25400,12 +25400,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref Single value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25416,12 +25416,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25432,12 +25432,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Int32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25448,12 +25448,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25464,12 +25464,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -25492,11 +25492,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -25519,12 +25519,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25549,12 +25549,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25579,12 +25579,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[,,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25609,11 +25609,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] ref T6 data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25638,11 +25638,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -25665,12 +25665,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25695,12 +25695,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25725,12 +25725,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] T6[,,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25755,11 +25755,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute] ref T6 data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -25772,12 +25772,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25788,12 +25788,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -25804,12 +25804,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify clear values for the color buffers
@@ -26285,12 +26285,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexImage(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all a texture image with a constant value
@@ -26307,12 +26307,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26331,12 +26331,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26355,12 +26355,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26379,12 +26379,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26403,12 +26403,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexImage(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all a texture image with a constant value
@@ -26425,12 +26425,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26449,12 +26449,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26473,12 +26473,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26497,12 +26497,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -26539,12 +26539,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexSubImage(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all or part of a texture image with a constant value
@@ -26579,12 +26579,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26621,12 +26621,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26663,12 +26663,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26705,12 +26705,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26747,12 +26747,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all or part of a texture image with a constant value
@@ -26787,12 +26787,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26829,12 +26829,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26871,12 +26871,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -26913,12 +26913,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -27031,7 +27031,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
         [CLSCompliant(false)]
-        public static void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, Double[] equation) { throw new NotImplementedException(); }
+        public static void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [CountAttribute(Count = 4)] Double[] equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a plane against which all geometry is clipped
@@ -27044,7 +27044,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
         [CLSCompliant(false)]
-        public static void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, ref Double equation) { throw new NotImplementedException(); }
+        public static void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [CountAttribute(Count = 4)] ref Double equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a plane against which all geometry is clipped
@@ -27057,7 +27057,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
         [CLSCompliant(false)]
-        public static unsafe void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, Double* equation) { throw new NotImplementedException(); }
+        public static unsafe void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [CountAttribute(Count = 4)] Double* equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27083,7 +27083,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3bv")]
         [CLSCompliant(false)]
-        public static void Color3(SByte[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27093,7 +27093,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3bv")]
         [CLSCompliant(false)]
-        public static void Color3(ref SByte v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27103,7 +27103,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3bv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27128,7 +27128,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3dv")]
         [CLSCompliant(false)]
-        public static void Color3(Double[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27138,7 +27138,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3dv")]
         [CLSCompliant(false)]
-        public static void Color3(ref Double v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27148,7 +27148,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3dv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27173,7 +27173,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3fv")]
         [CLSCompliant(false)]
-        public static void Color3(Single[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27183,7 +27183,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3fv")]
         [CLSCompliant(false)]
-        public static void Color3(ref Single v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27193,7 +27193,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27218,7 +27218,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3iv")]
         [CLSCompliant(false)]
-        public static void Color3(Int32[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27228,7 +27228,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3iv")]
         [CLSCompliant(false)]
-        public static void Color3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27238,7 +27238,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27263,7 +27263,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3sv")]
         [CLSCompliant(false)]
-        public static void Color3(Int16[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27273,7 +27273,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3sv")]
         [CLSCompliant(false)]
-        public static void Color3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27283,7 +27283,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3sv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27308,7 +27308,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3ubv")]
         [CLSCompliant(false)]
-        public static void Color3(Byte[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27318,7 +27318,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3ubv")]
         [CLSCompliant(false)]
-        public static void Color3(ref Byte v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27328,7 +27328,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3ubv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27354,7 +27354,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3uiv")]
         [CLSCompliant(false)]
-        public static void Color3(UInt32[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27364,7 +27364,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3uiv")]
         [CLSCompliant(false)]
-        public static void Color3(ref UInt32 v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27374,7 +27374,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27400,7 +27400,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3usv")]
         [CLSCompliant(false)]
-        public static void Color3(UInt16[] v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27410,7 +27410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3usv")]
         [CLSCompliant(false)]
-        public static void Color3(ref UInt16 v) { throw new NotImplementedException(); }
+        public static void Color3([CountAttribute(Count = 3)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27420,7 +27420,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor3usv")]
         [CLSCompliant(false)]
-        public static unsafe void Color3(UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void Color3([CountAttribute(Count = 3)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27449,7 +27449,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4bv")]
         [CLSCompliant(false)]
-        public static void Color4(SByte[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27459,7 +27459,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4bv")]
         [CLSCompliant(false)]
-        public static void Color4(ref SByte v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27469,7 +27469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4bv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27497,7 +27497,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4dv")]
         [CLSCompliant(false)]
-        public static void Color4(Double[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27507,7 +27507,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4dv")]
         [CLSCompliant(false)]
-        public static void Color4(ref Double v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27517,7 +27517,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4dv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27545,7 +27545,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4fv")]
         [CLSCompliant(false)]
-        public static void Color4(Single[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27555,7 +27555,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4fv")]
         [CLSCompliant(false)]
-        public static void Color4(ref Single v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27565,7 +27565,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27593,7 +27593,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4iv")]
         [CLSCompliant(false)]
-        public static void Color4(Int32[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27603,7 +27603,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4iv")]
         [CLSCompliant(false)]
-        public static void Color4(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27613,7 +27613,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27641,7 +27641,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4sv")]
         [CLSCompliant(false)]
-        public static void Color4(Int16[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27651,7 +27651,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4sv")]
         [CLSCompliant(false)]
-        public static void Color4(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27661,7 +27661,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4sv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27689,7 +27689,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4ubv")]
         [CLSCompliant(false)]
-        public static void Color4(Byte[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27699,7 +27699,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4ubv")]
         [CLSCompliant(false)]
-        public static void Color4(ref Byte v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27709,7 +27709,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27738,7 +27738,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4uiv")]
         [CLSCompliant(false)]
-        public static void Color4(UInt32[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27748,7 +27748,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4uiv")]
         [CLSCompliant(false)]
-        public static void Color4(ref UInt32 v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27758,7 +27758,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27787,7 +27787,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4usv")]
         [CLSCompliant(false)]
-        public static void Color4(UInt16[] v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27797,7 +27797,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4usv")]
         [CLSCompliant(false)]
-        public static void Color4(ref UInt16 v) { throw new NotImplementedException(); }
+        public static void Color4([CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color
@@ -27807,7 +27807,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glColor4usv")]
         [CLSCompliant(false)]
-        public static unsafe void Color4(UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void Color4([CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Enable and disable writing of frame buffer color components
@@ -27902,14 +27902,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -27930,14 +27930,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of colors
@@ -27951,11 +27951,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
-        public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of colors
@@ -27969,12 +27969,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27990,12 +27990,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28011,12 +28011,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
         [CLSCompliant(false)]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28032,11 +28032,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
-        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28058,11 +28058,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
-        public static void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,count")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Respecify a portion of a color table
@@ -28082,12 +28082,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28109,12 +28109,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28136,12 +28136,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,,] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28163,11 +28163,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] ref T5 data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28189,11 +28189,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
-        public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table) { throw new NotImplementedException(); }
+        public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr table) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a color lookup table
@@ -28213,12 +28213,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28240,12 +28240,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28267,12 +28267,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28294,11 +28294,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -28311,12 +28311,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -28327,12 +28327,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, ref Single @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -28343,12 +28343,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -28359,12 +28359,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -28375,12 +28375,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, ref Int32 @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -28391,12 +28391,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Compiles a shader object
@@ -28443,7 +28443,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
-        public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a one-dimensional texture image in a compressed format
@@ -28471,7 +28471,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -28501,7 +28501,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -28531,7 +28531,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -28560,7 +28560,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -28592,7 +28592,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a two-dimensional texture image in a compressed format
@@ -28623,7 +28623,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -28656,7 +28656,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -28689,7 +28689,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -28721,7 +28721,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -28756,7 +28756,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a three-dimensional texture image in a compressed format
@@ -28790,7 +28790,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -28826,7 +28826,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -28862,7 +28862,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -28897,7 +28897,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -28926,7 +28926,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
-        public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a one-dimensional texture subimage in a compressed format
@@ -28954,7 +28954,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -28984,7 +28984,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -29014,7 +29014,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -29043,7 +29043,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -29078,7 +29078,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -29112,7 +29112,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -29148,7 +29148,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -29184,7 +29184,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -29219,7 +29219,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -29260,7 +29260,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -29300,7 +29300,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -29342,7 +29342,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -29384,7 +29384,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -29425,7 +29425,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -29915,11 +29915,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
-        public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+        public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a one-dimensional convolution filter
@@ -29939,12 +29939,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -29966,12 +29966,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -29993,12 +29993,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -30020,11 +30020,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -30049,11 +30049,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
-        public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+        public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a two-dimensional convolution filter
@@ -30076,12 +30076,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -30106,12 +30106,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -30136,12 +30136,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -30166,11 +30166,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -30198,12 +30198,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -30214,12 +30214,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -30245,12 +30245,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -30261,12 +30261,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_copy_buffer|VERSION_3_1]
         /// Copy part of the data store of a buffer object to the data store of another buffer object
@@ -31048,7 +31048,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the address of an array of pointers to source code strings from which to create the program object.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glCreateShaderProgramv")]
-        public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ShaderType type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+        public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ShaderType type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="target"></param>
@@ -31285,7 +31285,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -31310,7 +31310,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -31335,7 +31335,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -31360,7 +31360,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -31385,7 +31385,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -31410,7 +31410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Inject an application-supplied message into the debug message queue
@@ -31430,12 +31430,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, Int32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, Int32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Inject an application-supplied message into the debug message queue
@@ -31455,12 +31455,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, UInt32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, UInt32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31470,7 +31470,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31480,7 +31480,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31493,7 +31493,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31506,7 +31506,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31519,7 +31519,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31532,7 +31532,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31545,7 +31545,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -31558,7 +31558,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31568,7 +31568,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31578,7 +31578,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31591,7 +31591,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31604,7 +31604,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31617,7 +31617,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31630,7 +31630,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31643,7 +31643,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -31656,7 +31656,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Delete a contiguous group of display lists
@@ -31712,7 +31712,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31722,7 +31722,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31735,7 +31735,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31748,7 +31748,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31761,7 +31761,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31774,7 +31774,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31787,7 +31787,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -31800,7 +31800,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31810,7 +31810,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31820,7 +31820,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31833,7 +31833,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31846,7 +31846,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31859,7 +31859,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31872,7 +31872,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31885,7 +31885,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -31898,7 +31898,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31908,7 +31908,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31918,7 +31918,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31931,7 +31931,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31944,7 +31944,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31957,7 +31957,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31970,7 +31970,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31983,7 +31983,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -31996,7 +31996,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32006,7 +32006,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32016,7 +32016,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32029,7 +32029,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32042,7 +32042,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32055,7 +32055,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32068,7 +32068,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32081,7 +32081,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -32094,7 +32094,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Deletes a shader object
@@ -32133,7 +32133,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32143,7 +32143,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32156,7 +32156,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32169,7 +32169,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32182,7 +32182,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32195,7 +32195,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32208,7 +32208,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -32221,7 +32221,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32231,7 +32231,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32241,7 +32241,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32254,7 +32254,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32267,7 +32267,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32280,7 +32280,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32293,7 +32293,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32306,7 +32306,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -32319,7 +32319,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32329,7 +32329,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32339,7 +32339,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32352,7 +32352,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32365,7 +32365,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32378,7 +32378,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32391,7 +32391,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32404,7 +32404,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -32417,7 +32417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the value used for depth buffer comparisons
@@ -32458,12 +32458,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(Int32 first, Int32 count, Double[] v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -32474,12 +32474,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(Int32 first, Int32 count, ref Double v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -32490,12 +32490,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void DepthRangeArray(Int32 first, Int32 count, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -32506,12 +32506,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(UInt32 first, Int32 count, Double[] v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -32522,12 +32522,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(UInt32 first, Int32 count, ref Double v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -32538,12 +32538,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void DepthRangeArray(UInt32 first, Int32 count, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates
@@ -32985,7 +32985,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.DrawBuffersEnum[] bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBuffersEnum[] bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies a list of color buffers to be drawn into
@@ -32998,7 +32998,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.DrawBuffersEnum bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL.DrawBuffersEnum bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies a list of color buffers to be drawn into
@@ -33011,7 +33011,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.DrawBuffersEnum* bufs) { throw new NotImplementedException(); }
+        public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBuffersEnum* bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -33025,11 +33025,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, Int32 indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] Int32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -33043,12 +33043,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -33062,13 +33062,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33084,13 +33084,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33106,13 +33106,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33128,12 +33128,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33149,11 +33149,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, Int32 indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] Int32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -33167,11 +33167,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -33185,12 +33185,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33206,12 +33206,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33227,12 +33227,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33248,11 +33248,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33268,7 +33268,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33276,7 +33276,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -33290,7 +33290,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33299,7 +33299,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33315,7 +33315,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33324,7 +33324,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33340,7 +33340,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33349,7 +33349,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33365,7 +33365,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33373,7 +33373,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33389,14 +33389,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -33410,7 +33410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33418,7 +33418,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33434,7 +33434,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33442,7 +33442,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33458,7 +33458,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -33466,7 +33466,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33482,14 +33482,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33682,7 +33682,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33690,7 +33690,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1]
         /// Draw multiple instances of a set of elements
@@ -33704,7 +33704,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33713,7 +33713,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33729,7 +33729,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33738,7 +33738,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33754,7 +33754,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33763,7 +33763,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33779,7 +33779,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33787,7 +33787,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33803,14 +33803,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1]
         /// Draw multiple instances of a set of elements
@@ -33824,7 +33824,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33832,7 +33832,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33848,7 +33848,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33856,7 +33856,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33872,7 +33872,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -33880,7 +33880,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33896,14 +33896,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33930,7 +33930,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Draw multiple instances of a set of elements with offset applied to instanced attributes
@@ -33955,7 +33955,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, UInt32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, UInt32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Draw multiple instances of a set of elements with offset applied to instanced attributes
@@ -33980,7 +33980,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34007,7 +34007,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34034,7 +34034,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34061,7 +34061,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34088,7 +34088,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34115,7 +34115,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34142,7 +34142,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34169,7 +34169,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34185,7 +34185,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34196,7 +34196,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -34210,7 +34210,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34222,7 +34222,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34238,7 +34238,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34250,7 +34250,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34266,7 +34266,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34278,7 +34278,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34294,7 +34294,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34305,7 +34305,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34321,7 +34321,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34331,7 +34331,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -34345,7 +34345,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34356,7 +34356,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34372,7 +34372,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34383,7 +34383,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34399,7 +34399,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34410,7 +34410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34426,7 +34426,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -34436,7 +34436,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34466,7 +34466,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -34494,7 +34494,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -34522,7 +34522,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34552,7 +34552,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34582,7 +34582,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34612,7 +34612,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34642,7 +34642,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34672,7 +34672,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34702,7 +34702,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34732,7 +34732,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34751,11 +34751,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type for data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
-        public static void DrawPixels(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void DrawPixels(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Write a block of pixels to the frame buffer
@@ -34772,12 +34772,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type for data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
         [CLSCompliant(false)]
-        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] pixels)
+        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T4[] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -34796,12 +34796,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type for data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
         [CLSCompliant(false)]
-        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] pixels)
+        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T4[,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -34820,12 +34820,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type for data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
         [CLSCompliant(false)]
-        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] pixels)
+        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T4[,,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -34844,11 +34844,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type for data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
-        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 pixels)
+        public static void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T4 pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -34870,13 +34870,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -34896,13 +34896,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -34924,13 +34924,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -34952,13 +34952,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -34980,13 +34980,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35008,13 +35008,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -35034,13 +35034,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35062,13 +35062,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35090,13 +35090,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35118,13 +35118,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35146,12 +35146,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -35171,12 +35171,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35198,12 +35198,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35225,12 +35225,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35252,12 +35252,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35279,12 +35279,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -35304,12 +35304,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35331,12 +35331,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35358,12 +35358,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35385,12 +35385,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35412,7 +35412,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35421,7 +35421,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -35441,7 +35441,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35450,7 +35450,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35472,7 +35472,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35481,7 +35481,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35503,7 +35503,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35512,7 +35512,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35534,7 +35534,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35543,7 +35543,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35565,7 +35565,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35574,7 +35574,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -35594,7 +35594,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35603,7 +35603,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35625,7 +35625,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35634,7 +35634,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35656,7 +35656,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35665,7 +35665,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35687,7 +35687,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35696,7 +35696,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35718,7 +35718,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35726,7 +35726,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -35746,7 +35746,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35754,7 +35754,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35776,7 +35776,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35784,7 +35784,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35806,7 +35806,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35814,7 +35814,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35836,7 +35836,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35844,7 +35844,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35866,7 +35866,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35874,7 +35874,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -35894,7 +35894,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35902,7 +35902,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35924,7 +35924,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35932,7 +35932,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35954,7 +35954,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35962,7 +35962,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -35984,7 +35984,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -35992,7 +35992,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -36201,11 +36201,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: stride]
+        /// <param name="pointer">[length: COMPSIZE(stride)]
         /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
-        public static void EdgeFlagPointer(Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void EdgeFlagPointer(Int32 stride, [CountAttribute(Computed = "stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of edge flags
@@ -36213,12 +36213,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: stride]
+        /// <param name="pointer">[length: COMPSIZE(stride)]
         /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
         [CLSCompliant(false)]
-        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] T1[] pointer)
+        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "stride")] T1[] pointer)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -36228,12 +36228,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: stride]
+        /// <param name="pointer">[length: COMPSIZE(stride)]
         /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
         [CLSCompliant(false)]
-        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] T1[,] pointer)
+        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "stride")] T1[,] pointer)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -36243,12 +36243,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: stride]
+        /// <param name="pointer">[length: COMPSIZE(stride)]
         /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
         [CLSCompliant(false)]
-        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] T1[,,] pointer)
+        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "stride")] T1[,,] pointer)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -36258,11 +36258,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: stride]
+        /// <param name="pointer">[length: COMPSIZE(stride)]
         /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
-        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] ref T1 pointer)
+        public static void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "stride")] ref T1 pointer)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -36275,7 +36275,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use ref overload instead")]
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEdgeFlagv")]
         [CLSCompliant(false)]
-        public static void EdgeFlag(bool[] flag) { throw new NotImplementedException(); }
+        public static void EdgeFlag([CountAttribute(Count = 1)] bool[] flag) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Flag edges as either boundary or nonboundary
@@ -36286,7 +36286,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use ref overload instead")]
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEdgeFlagv")]
         [CLSCompliant(false)]
-        public static unsafe void EdgeFlag(bool* flag) { throw new NotImplementedException(); }
+        public static unsafe void EdgeFlag([CountAttribute(Count = 1)] bool* flag) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Enable or disable server-side GL capabilities
@@ -36418,7 +36418,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord1dv")]
         [CLSCompliant(false)]
-        public static unsafe void EvalCoord1(Double* u) { throw new NotImplementedException(); }
+        public static unsafe void EvalCoord1([CountAttribute(Count = 1)] Double* u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36437,7 +36437,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord1fv")]
         [CLSCompliant(false)]
-        public static unsafe void EvalCoord1(Single* u) { throw new NotImplementedException(); }
+        public static unsafe void EvalCoord1([CountAttribute(Count = 1)] Single* u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36459,7 +36459,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
         [CLSCompliant(false)]
-        public static void EvalCoord2(Double[] u) { throw new NotImplementedException(); }
+        public static void EvalCoord2([CountAttribute(Count = 2)] Double[] u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36469,7 +36469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
         [CLSCompliant(false)]
-        public static void EvalCoord2(ref Double u) { throw new NotImplementedException(); }
+        public static void EvalCoord2([CountAttribute(Count = 2)] ref Double u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36479,7 +36479,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2dv")]
         [CLSCompliant(false)]
-        public static unsafe void EvalCoord2(Double* u) { throw new NotImplementedException(); }
+        public static unsafe void EvalCoord2([CountAttribute(Count = 2)] Double* u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36501,7 +36501,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
         [CLSCompliant(false)]
-        public static void EvalCoord2(Single[] u) { throw new NotImplementedException(); }
+        public static void EvalCoord2([CountAttribute(Count = 2)] Single[] u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36511,7 +36511,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
         [CLSCompliant(false)]
-        public static void EvalCoord2(ref Single u) { throw new NotImplementedException(); }
+        public static void EvalCoord2([CountAttribute(Count = 2)] ref Single u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Evaluate enabled one- and two-dimensional maps
@@ -36521,7 +36521,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalCoord2fv")]
         [CLSCompliant(false)]
-        public static unsafe void EvalCoord2(Single* u) { throw new NotImplementedException(); }
+        public static unsafe void EvalCoord2([CountAttribute(Count = 2)] Single* u) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Compute a one- or two-dimensional grid of points or lines
@@ -36590,7 +36590,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
         [CLSCompliant(false)]
-        public static void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] Single[] buffer) { throw new NotImplementedException(); }
+        public static void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute, CountAttribute(Parameter = "size")] Single[] buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Controls feedback mode
@@ -36606,7 +36606,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
         [CLSCompliant(false)]
-        public static void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] out Single buffer) { throw new NotImplementedException(); }
+        public static void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute, CountAttribute(Parameter = "size")] out Single buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Controls feedback mode
@@ -36622,7 +36622,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
         [CLSCompliant(false)]
-        public static unsafe void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] Single* buffer) { throw new NotImplementedException(); }
+        public static unsafe void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute, CountAttribute(Parameter = "size")] Single* buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Create a new sync object and insert it into the GL command stream
@@ -36739,7 +36739,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoorddv")]
         [CLSCompliant(false)]
-        public static unsafe void FogCoord(Double* coord) { throw new NotImplementedException(); }
+        public static unsafe void FogCoord([CountAttribute(Count = 1)] Double* coord) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current fog coordinates
@@ -36758,7 +36758,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordfv")]
         [CLSCompliant(false)]
-        public static unsafe void FogCoord(Single* coord) { throw new NotImplementedException(); }
+        public static unsafe void FogCoord([CountAttribute(Count = 1)] Single* coord) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Define an array of fog coordinates
@@ -36769,11 +36769,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
-        public static void FogCoordPointer(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void FogCoordPointer(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Define an array of fog coordinates
@@ -36784,12 +36784,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
         [CLSCompliant(false)]
-        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -36802,12 +36802,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
         [CLSCompliant(false)]
-        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -36820,12 +36820,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
         [CLSCompliant(false)]
-        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -36838,11 +36838,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
-        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -36864,12 +36864,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify fog parameters
@@ -36877,12 +36877,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogfv")]
         [CLSCompliant(false)]
-        public static unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify fog parameters
@@ -36902,12 +36902,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogiv")]
         [CLSCompliant(false)]
-        public static void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify fog parameters
@@ -36915,12 +36915,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued fog parameter. FogMode, FogDensity, FogStart, FogEnd, FogIndex, and FogCoordSrc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogiv")]
         [CLSCompliant(false)]
-        public static unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Set a named parameter of a framebuffer
@@ -37170,7 +37170,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -37183,7 +37183,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -37196,7 +37196,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -37209,7 +37209,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -37222,7 +37222,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -37235,7 +37235,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate mipmaps for a specified texture target
@@ -37276,7 +37276,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -37289,7 +37289,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -37302,7 +37302,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -37315,7 +37315,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -37328,7 +37328,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -37341,7 +37341,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Generate a contiguous set of empty display lists
@@ -37370,7 +37370,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -37383,7 +37383,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -37396,7 +37396,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -37409,7 +37409,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -37422,7 +37422,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -37435,7 +37435,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37455,7 +37455,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37468,7 +37468,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37481,7 +37481,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37494,7 +37494,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37507,7 +37507,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -37520,7 +37520,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37540,7 +37540,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37553,7 +37553,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37566,7 +37566,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37579,7 +37579,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37592,7 +37592,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -37605,7 +37605,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37625,7 +37625,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] Int32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37638,7 +37638,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out Int32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37651,7 +37651,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37664,7 +37664,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37677,7 +37677,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out UInt32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -37690,7 +37690,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37710,7 +37710,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37723,7 +37723,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37736,7 +37736,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37749,7 +37749,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37762,7 +37762,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -37775,7 +37775,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37795,7 +37795,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37808,7 +37808,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37821,7 +37821,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37834,7 +37834,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37847,7 +37847,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -37860,7 +37860,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37880,7 +37880,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37893,7 +37893,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37906,7 +37906,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37919,7 +37919,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37932,7 +37932,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -37945,7 +37945,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -37959,12 +37959,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -37978,12 +37978,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -37997,12 +37997,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -38016,12 +38016,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -38035,12 +38035,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -38054,12 +38054,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -38087,7 +38087,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -38115,7 +38115,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -38143,7 +38143,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -38171,7 +38171,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -38196,7 +38196,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -38221,7 +38221,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -38246,7 +38246,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -38271,7 +38271,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38288,12 +38288,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38310,12 +38310,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38332,12 +38332,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38354,12 +38354,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38376,12 +38376,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -38398,12 +38398,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -38428,7 +38428,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -38453,7 +38453,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -38478,7 +38478,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -38503,7 +38503,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -38531,7 +38531,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -38559,7 +38559,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -38587,7 +38587,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -38615,7 +38615,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38629,12 +38629,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38648,12 +38648,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38667,12 +38667,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38686,12 +38686,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38705,12 +38705,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -38724,12 +38724,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -38751,7 +38751,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -38773,7 +38773,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -38795,7 +38795,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -38817,7 +38817,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -38839,7 +38839,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -38861,7 +38861,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -38883,7 +38883,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -38905,7 +38905,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -38922,12 +38922,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -38944,12 +38944,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref Int32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -38966,12 +38966,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -38988,12 +38988,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -39010,12 +39010,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref UInt32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -39032,12 +39032,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39056,7 +39056,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39075,7 +39075,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39094,7 +39094,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39113,7 +39113,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39132,7 +39132,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -39151,7 +39151,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the location of an attribute variable
@@ -39182,50 +39182,50 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -39235,24 +39235,24 @@ namespace OpenTK.Graphics.OpenGL
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -39263,12 +39263,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -39279,12 +39279,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -39295,12 +39295,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -39311,12 +39311,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -39327,12 +39327,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -39343,12 +39343,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return the pointer to a mapped buffer object's data store
@@ -39363,7 +39363,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetBufferPointer(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return the pointer to a mapped buffer object's data store
@@ -39379,7 +39379,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39397,7 +39397,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39415,7 +39415,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39432,7 +39432,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] ref T2 @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39452,7 +39452,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+        public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Returns a subset of a buffer object's data store
@@ -39471,7 +39471,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39492,7 +39492,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39513,7 +39513,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39533,7 +39533,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39553,7 +39553,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+        public static void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Returns a subset of a buffer object's data store
@@ -39572,7 +39572,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39593,7 +39593,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39614,7 +39614,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39634,7 +39634,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39649,7 +39649,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
         [CLSCompliant(false)]
-        public static void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] Double[] equation) { throw new NotImplementedException(); }
+        public static void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute, CountAttribute(Count = 4)] Double[] equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the coefficients of the specified clipping plane
@@ -39662,7 +39662,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
         [CLSCompliant(false)]
-        public static void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] out Double equation) { throw new NotImplementedException(); }
+        public static void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute, CountAttribute(Count = 4)] out Double equation) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the coefficients of the specified clipping plane
@@ -39675,7 +39675,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
         [CLSCompliant(false)]
-        public static unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] Double* equation) { throw new NotImplementedException(); }
+        public static unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute, CountAttribute(Count = 4)] Double* equation) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve contents of a color lookup table
@@ -39689,11 +39689,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
-        public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+        public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve contents of a color lookup table
@@ -39707,12 +39707,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39728,12 +39728,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39749,12 +39749,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39770,11 +39770,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -39787,12 +39787,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -39803,12 +39803,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -39819,12 +39819,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -39835,12 +39835,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -39851,12 +39851,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -39867,12 +39867,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Return a compressed texture image
@@ -39883,11 +39883,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
-        public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+        public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Return a compressed texture image
@@ -39898,12 +39898,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39916,12 +39916,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39934,12 +39934,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,,] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,,] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -39952,11 +39952,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] ref T2 img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] ref T2 img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -40244,11 +40244,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
-        public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+        public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get current 1D or 2D convolution filter kernel
@@ -40262,12 +40262,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -40283,12 +40283,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -40304,12 +40304,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -40325,11 +40325,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -40342,12 +40342,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -40358,12 +40358,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -40374,12 +40374,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -40390,12 +40390,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -40406,12 +40406,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -40422,12 +40422,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40458,7 +40458,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSource[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSource[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40489,7 +40489,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugSource sources, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugSource sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40520,7 +40520,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSource* sources, [OutAttribute] OpenTK.Graphics.OpenGL.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSource* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40551,7 +40551,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSource[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSource[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40582,7 +40582,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugSource sources, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugSource sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -40613,55 +40613,55 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSource* sources, [OutAttribute] OpenTK.Graphics.OpenGL.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSource* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -40671,24 +40671,24 @@ namespace OpenTK.Graphics.OpenGL
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return error information
@@ -40699,50 +40699,50 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -40752,24 +40752,24 @@ namespace OpenTK.Graphics.OpenGL
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_blend_func_extended|VERSION_3_3]
         /// Query the bindings of color indices to user-defined varying out variables
@@ -40803,12 +40803,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(Int32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -40816,12 +40816,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -40835,12 +40835,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -40854,12 +40854,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -40873,12 +40873,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -40889,12 +40889,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -40905,12 +40905,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -40921,12 +40921,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or KHR_robustness|VERSION_4_5]</summary>
         [AutoGenerated(Category = "KHR_robustness|VERSION_4_5", Version = "4.5", EntryPoint = "glGetGraphicsResetStatus")]
@@ -40947,11 +40947,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
-        public static void GetHistogram(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+        public static void GetHistogram(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram table
@@ -40968,12 +40968,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -40992,12 +40992,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41016,12 +41016,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41040,11 +41040,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41057,12 +41057,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -41073,12 +41073,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -41089,12 +41089,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -41105,12 +41105,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -41121,12 +41121,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -41137,114 +41137,114 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [Obsolete("Use GetIndexedPName overload instead")]
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.Version32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
@@ -41261,96 +41261,96 @@ namespace OpenTK.Graphics.OpenGL
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use GetPName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use GetPName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use GetPName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -41360,24 +41360,24 @@ namespace OpenTK.Graphics.OpenGL
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41399,7 +41399,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41421,7 +41421,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41443,7 +41443,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41465,7 +41465,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41487,7 +41487,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -41509,7 +41509,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41520,12 +41520,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41536,12 +41536,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41552,12 +41552,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41568,12 +41568,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41584,12 +41584,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
         [CLSCompliant(false)]
-        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return light source parameter values
@@ -41600,12 +41600,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a light source parameter for light. Accepted symbolic names are Ambient, Diffuse, Specular, Position, SpotDirection, SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41616,12 +41616,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Double[] v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41632,12 +41632,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Double v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] out Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41648,12 +41648,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Double* v) { throw new NotImplementedException(); }
+        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41664,12 +41664,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Single[] v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41680,12 +41680,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Single v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] out Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41696,12 +41696,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Single* v) { throw new NotImplementedException(); }
+        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41712,12 +41712,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Int32[] v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41728,12 +41728,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
         [CLSCompliant(false)]
-        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Int32 v) { throw new NotImplementedException(); }
+        public static void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] out Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return evaluator parameters
@@ -41744,12 +41744,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="query">
         /// Specifies which parameter to return. Symbolic names Coeff, Order, and Domain are accepted.
         /// </param>
-        /// <param name="v">[length: target,query]
+        /// <param name="v">[length: COMPSIZE(target,query)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute, CountAttribute(Computed = "target,query")] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41760,12 +41760,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41776,12 +41776,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41792,12 +41792,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41808,12 +41808,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41824,12 +41824,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
         [CLSCompliant(false)]
-        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return material parameters
@@ -41840,12 +41840,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the material parameter to return. Ambient, Diffuse, Specular, Emission, Shininess, and ColorIndexes are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minimum and maximum pixel values
@@ -41862,11 +41862,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
-        public static void GetMinmax(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+        public static void GetMinmax(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minimum and maximum pixel values
@@ -41883,12 +41883,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41907,12 +41907,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41931,12 +41931,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41955,11 +41955,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41972,12 +41972,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -41988,12 +41988,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -42004,12 +42004,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -42020,12 +42020,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -42036,12 +42036,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -42052,12 +42052,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42068,12 +42068,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42084,12 +42084,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42100,12 +42100,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42116,12 +42116,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42132,12 +42132,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -42148,12 +42148,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="buffer"></param>
@@ -43464,7 +43464,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -43486,7 +43486,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -43508,7 +43508,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -43530,7 +43530,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -43552,7 +43552,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -43574,7 +43574,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -43594,7 +43594,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -43614,7 +43614,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -43634,7 +43634,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -43654,7 +43654,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43676,7 +43676,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43698,7 +43698,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43720,7 +43720,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43742,7 +43742,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43764,7 +43764,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43786,7 +43786,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43808,7 +43808,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43830,7 +43830,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43852,7 +43852,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43874,7 +43874,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43896,7 +43896,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -43916,12 +43916,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Single[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Single[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43929,12 +43929,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Single values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] out Single values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43942,12 +43942,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Single* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Single* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43955,12 +43955,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43968,12 +43968,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43981,12 +43981,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -43994,12 +43994,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt32[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] UInt32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44007,12 +44007,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out UInt32 values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] out UInt32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44020,12 +44020,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] UInt32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44033,12 +44033,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int16[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Int16[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44046,12 +44046,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Int16 values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] out Int16 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44059,12 +44059,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int16* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] Int16* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44072,12 +44072,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt16[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] UInt16[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44085,12 +44085,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out UInt16 values) { throw new NotImplementedException(); }
+        public static void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] out UInt16 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the specified pixel map
@@ -44098,12 +44098,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="map">
         /// Specifies the name of the pixel map to return. Accepted values are PixelMapIToI, PixelMapSToS, PixelMapIToR, PixelMapIToG, PixelMapIToB, PixelMapIToA, PixelMapRToR, PixelMapGToG, PixelMapBToB, and PixelMapAToA.
         /// </param>
-        /// <param name="values">[length: map]
+        /// <param name="values">[length: COMPSIZE(map)]
         /// Returns the pixel map contents.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt16* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute, CountAttribute(Computed = "map")] UInt16* values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -44111,7 +44111,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -44119,7 +44119,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -44127,7 +44127,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetPixelMapxv")]
         [CLSCompliant(false)]
-        public static unsafe void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1 or KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3]
         /// Return the address of the specified pointer
@@ -44139,7 +44139,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3", Version = "1.1", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1 or KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3]
         /// Return the address of the specified pointer
@@ -44152,7 +44152,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3", Version = "1.1", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -44167,7 +44167,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3", Version = "1.1", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -44182,7 +44182,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3", Version = "1.1", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -44196,7 +44196,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_1_1|VERSION_4_3|VERSION_4_3", Version = "1.1", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -44210,32 +44210,32 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the polygon stipple pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Returns the stipple pattern. The initial value is all 1's.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
         [CLSCompliant(false)]
-        public static void GetPolygonStipple([OutAttribute] Byte[] mask) { throw new NotImplementedException(); }
+        public static void GetPolygonStipple([OutAttribute, CountAttribute(Computed = "")] Byte[] mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the polygon stipple pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Returns the stipple pattern. The initial value is all 1's.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
         [CLSCompliant(false)]
-        public static void GetPolygonStipple([OutAttribute] out Byte mask) { throw new NotImplementedException(); }
+        public static void GetPolygonStipple([OutAttribute, CountAttribute(Computed = "")] out Byte mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return the polygon stipple pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Returns the stipple pattern. The initial value is all 1's.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
         [CLSCompliant(false)]
-        public static unsafe void GetPolygonStipple([OutAttribute] Byte* mask) { throw new NotImplementedException(); }
+        public static unsafe void GetPolygonStipple([OutAttribute, CountAttribute(Computed = "")] Byte* mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -44257,7 +44257,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -44279,7 +44279,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44303,7 +44303,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44327,7 +44327,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44351,7 +44351,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44375,7 +44375,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -44397,7 +44397,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44421,7 +44421,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44445,7 +44445,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44469,7 +44469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44493,7 +44493,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -44515,7 +44515,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44539,7 +44539,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44563,7 +44563,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44587,7 +44587,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44611,7 +44611,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -44633,7 +44633,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44657,7 +44657,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44681,7 +44681,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44705,7 +44705,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -44726,7 +44726,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -44745,7 +44745,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -44764,7 +44764,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -44783,7 +44783,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44797,12 +44797,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44816,12 +44816,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44835,12 +44835,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44854,12 +44854,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44873,12 +44873,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -44892,12 +44892,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44908,12 +44908,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44924,12 +44924,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44940,12 +44940,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44956,13 +44956,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44973,13 +44973,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -44990,13 +44990,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45007,12 +45007,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45023,12 +45023,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45039,12 +45039,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45055,13 +45055,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45072,13 +45072,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -45089,13 +45089,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [Obsolete("Use GetProgramParameterName overload instead")]
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45115,7 +45115,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45135,7 +45135,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45155,7 +45155,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45175,7 +45175,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45195,7 +45195,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -45215,7 +45215,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45226,12 +45226,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45242,12 +45242,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45258,12 +45258,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45274,12 +45274,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45290,12 +45290,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -45306,12 +45306,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the index of a named resource within a program
@@ -45322,12 +45322,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the index of a named resource within a program
@@ -45338,12 +45338,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45363,7 +45363,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45382,7 +45382,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45402,7 +45402,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45422,7 +45422,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45442,7 +45442,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45461,7 +45461,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45481,7 +45481,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -45501,7 +45501,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the location of a named resource within a program
@@ -45512,12 +45512,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the location of a named resource within a program
@@ -45528,12 +45528,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the fragment color index of a named variable within a program
@@ -45544,12 +45544,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocationIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocationIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the fragment color index of a named variable within a program
@@ -45560,12 +45560,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocationIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocationIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45591,7 +45591,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45617,7 +45617,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45643,7 +45643,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45669,7 +45669,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45695,7 +45695,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -45721,7 +45721,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -45740,7 +45740,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -45759,7 +45759,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -45778,7 +45778,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -45797,7 +45797,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45811,12 +45811,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45830,12 +45830,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45849,12 +45849,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45868,12 +45868,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45887,12 +45887,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -45906,12 +45906,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -45922,12 +45922,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -45938,12 +45938,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -45954,12 +45954,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -45970,12 +45970,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -45986,12 +45986,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46002,12 +46002,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46018,12 +46018,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46034,12 +46034,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46050,12 +46050,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46066,12 +46066,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46082,12 +46082,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46098,12 +46098,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46114,12 +46114,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46130,12 +46130,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46146,12 +46146,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46162,12 +46162,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46178,12 +46178,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -46194,12 +46194,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46210,12 +46210,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46226,12 +46226,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -46242,12 +46242,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -46258,12 +46258,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -46274,12 +46274,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -46290,12 +46290,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46306,13 +46306,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46323,13 +46323,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46340,13 +46340,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46357,12 +46357,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46373,12 +46373,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46389,12 +46389,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46405,13 +46405,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46422,13 +46422,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46439,13 +46439,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46456,12 +46456,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46472,12 +46472,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46488,165 +46488,165 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use All overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46657,13 +46657,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46674,13 +46674,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46691,13 +46691,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46708,12 +46708,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46724,12 +46724,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46740,12 +46740,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46756,13 +46756,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46773,13 +46773,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46790,13 +46790,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46807,12 +46807,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46823,12 +46823,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -46839,12 +46839,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get separable convolution filter kernel images
@@ -46858,17 +46858,17 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
-        public static void GetSeparableFilter(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span) { throw new NotImplementedException(); }
+        public static void GetSeparableFilter(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get separable convolution filter kernel images
@@ -46882,18 +46882,18 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] row, [InAttribute, OutAttribute] T4[] column, [InAttribute, OutAttribute] T5[] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -46911,18 +46911,18 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] row, [InAttribute, OutAttribute] T4[,] column, [InAttribute, OutAttribute] T5[,] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -46940,18 +46940,18 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] row, [InAttribute, OutAttribute] T4[,,] column, [InAttribute, OutAttribute] T5[,,] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,,] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -46969,17 +46969,17 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 row, [InAttribute, OutAttribute] ref T4 column, [InAttribute, OutAttribute] ref T5 span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T5 span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -47002,7 +47002,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -47021,7 +47021,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -47040,7 +47040,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -47059,7 +47059,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47070,12 +47070,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47086,12 +47086,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47102,12 +47102,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47118,12 +47118,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47134,12 +47134,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -47150,12 +47150,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -47174,7 +47174,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -47193,7 +47193,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -47212,7 +47212,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -47231,7 +47231,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -47250,7 +47250,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -47269,7 +47269,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -47288,7 +47288,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a string describing the current GL connection
@@ -47438,7 +47438,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use SyncParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -47461,7 +47461,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use SyncParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -47484,7 +47484,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use SyncParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.ArbSync pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -47506,7 +47506,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -47528,7 +47528,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -47550,7 +47550,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47561,12 +47561,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47577,12 +47577,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47593,12 +47593,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47609,12 +47609,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47625,12 +47625,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture environment parameters
@@ -47641,12 +47641,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture environment parameter. Accepted values are TextureEnvMode, TextureEnvColor, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47657,12 +47657,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47673,12 +47673,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47689,12 +47689,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47705,12 +47705,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47721,12 +47721,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47737,12 +47737,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47753,12 +47753,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47769,12 +47769,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
         [CLSCompliant(false)]
-        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Return texture coordinate generation parameters
@@ -47785,12 +47785,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the value(s) to be returned. Must be either TextureGenMode or the name of one of the texture generation plane equations: ObjectPlane or EyePlane.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a texture image
@@ -47807,11 +47807,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
-        public static void GetTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void GetTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a texture image
@@ -47828,12 +47828,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -47852,12 +47852,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -47876,12 +47876,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[,,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -47900,11 +47900,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] ref T4 pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -47920,12 +47920,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -47939,12 +47939,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -47958,12 +47958,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -47977,12 +47977,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -47996,12 +47996,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -48015,12 +48015,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48031,12 +48031,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48047,12 +48047,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48063,60 +48063,60 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48127,12 +48127,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48143,12 +48143,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -48159,12 +48159,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="texture"></param>
@@ -48936,7 +48936,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -48964,7 +48964,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -48992,7 +48992,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -49020,7 +49020,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -49048,7 +49048,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -49076,7 +49076,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -49104,7 +49104,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -49132,7 +49132,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49140,12 +49140,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(Int32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49153,12 +49153,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49169,12 +49169,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49185,12 +49185,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49201,12 +49201,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49217,12 +49217,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49233,12 +49233,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -49249,12 +49249,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49265,12 +49265,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49281,12 +49281,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49297,12 +49297,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49313,12 +49313,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49329,12 +49329,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49345,12 +49345,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49361,15 +49361,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49380,15 +49380,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out Int32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out Int32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49399,15 +49399,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49418,15 +49418,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49437,15 +49437,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out UInt32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out UInt32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -49456,15 +49456,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49475,12 +49475,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49491,12 +49491,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49507,12 +49507,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49523,12 +49523,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49539,12 +49539,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -49555,12 +49555,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the location of a uniform variable
@@ -49602,7 +49602,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -49618,7 +49618,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -49634,7 +49634,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -49650,7 +49650,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -49661,12 +49661,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -49677,12 +49677,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -49693,12 +49693,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="vaobj"></param>
@@ -49870,7 +49870,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49886,7 +49886,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49902,7 +49902,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49918,7 +49918,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49934,7 +49934,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49950,7 +49950,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49966,7 +49966,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49982,7 +49982,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -49998,7 +49998,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50014,7 +50014,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50030,7 +50030,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50046,7 +50046,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50054,7 +50054,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50062,7 +50062,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50070,7 +50070,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50078,7 +50078,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50086,7 +50086,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -50094,7 +50094,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50110,7 +50110,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50126,7 +50126,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50142,7 +50142,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50158,7 +50158,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50174,7 +50174,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -50190,55 +50190,55 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -50254,7 +50254,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -50270,7 +50270,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50288,7 +50288,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50306,7 +50306,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50324,7 +50324,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50342,7 +50342,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -50358,7 +50358,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50376,7 +50376,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50394,7 +50394,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50412,7 +50412,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50463,7 +50463,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glIndexdv")]
         [CLSCompliant(false)]
-        public static unsafe void Index(Double* c) { throw new NotImplementedException(); }
+        public static unsafe void Index([CountAttribute(Count = 1)] Double* c) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color index
@@ -50482,7 +50482,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glIndexfv")]
         [CLSCompliant(false)]
-        public static unsafe void Index(Single* c) { throw new NotImplementedException(); }
+        public static unsafe void Index([CountAttribute(Count = 1)] Single* c) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current color index
@@ -50501,7 +50501,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glIndexiv")]
         [CLSCompliant(false)]
-        public static unsafe void Index(Int32* c) { throw new NotImplementedException(); }
+        public static unsafe void Index([CountAttribute(Count = 1)] Int32* c) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the writing of individual bits in the color index buffers
@@ -50532,11 +50532,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first index in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
-        public static void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of color indexes
@@ -50547,12 +50547,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first index in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
         [CLSCompliant(false)]
-        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50565,12 +50565,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first index in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
         [CLSCompliant(false)]
-        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50583,12 +50583,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first index in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
         [CLSCompliant(false)]
-        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50601,11 +50601,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive color indexes. If stride is 0, the color indexes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first index in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
-        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50626,7 +50626,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glIndexsv")]
         [CLSCompliant(false)]
-        public static unsafe void Index(Int16* c) { throw new NotImplementedException(); }
+        public static unsafe void Index([CountAttribute(Count = 1)] Int16* c) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set the current color index
@@ -50645,7 +50645,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexubv")]
         [CLSCompliant(false)]
-        public static unsafe void Index(Byte* c) { throw new NotImplementedException(); }
+        public static unsafe void Index([CountAttribute(Count = 1)] Byte* c) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Initialize the name stack
@@ -50662,9 +50662,9 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the offset in bytes between each aggregate array element.
         /// </param>
-        /// <param name="pointer">[length: format,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(format,stride)]</param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
-        public static void InterleavedArrays(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void InterleavedArrays(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [CountAttribute(Computed = "format,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Simultaneously specify and enable several interleaved arrays
@@ -50675,10 +50675,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the offset in bytes between each aggregate array element.
         /// </param>
-        /// <param name="pointer">[length: format,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(format,stride)]</param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
         [CLSCompliant(false)]
-        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "format,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50691,10 +50691,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the offset in bytes between each aggregate array element.
         /// </param>
-        /// <param name="pointer">[length: format,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(format,stride)]</param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
         [CLSCompliant(false)]
-        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "format,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50707,10 +50707,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the offset in bytes between each aggregate array element.
         /// </param>
-        /// <param name="pointer">[length: format,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(format,stride)]</param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
         [CLSCompliant(false)]
-        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "format,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50723,9 +50723,9 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the offset in bytes between each aggregate array element.
         /// </param>
-        /// <param name="pointer">[length: format,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(format,stride)]</param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
-        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "format,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -50827,7 +50827,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content some or all of a framebuffer object's attachments
@@ -50843,7 +50843,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content some or all of a framebuffer object's attachments
@@ -50859,7 +50859,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="framebuffer"></param>
@@ -51007,7 +51007,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content of a region of some or all of a framebuffer object's attachments
@@ -51035,7 +51035,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content of a region of some or all of a framebuffer object's attachments
@@ -51063,7 +51063,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the entirety a texture image
@@ -51461,12 +51461,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set light source parameters
@@ -51477,12 +51477,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightfv")]
         [CLSCompliant(false)]
-        public static unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set light source parameters
@@ -51508,12 +51508,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightiv")]
         [CLSCompliant(false)]
-        public static void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set light source parameters
@@ -51524,12 +51524,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued light source parameter for light. SpotExponent, SpotCutoff, ConstantAttenuation, LinearAttenuation, and QuadraticAttenuation are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter pname of light source light will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightiv")]
         [CLSCompliant(false)]
-        public static unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the lighting model parameters
@@ -51549,12 +51549,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the lighting model parameters
@@ -51562,12 +51562,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
         [CLSCompliant(false)]
-        public static unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the lighting model parameters
@@ -51587,12 +51587,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModeliv")]
         [CLSCompliant(false)]
-        public static void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the lighting model parameters
@@ -51600,12 +51600,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued lighting model parameter. LightModelLocalViewer, LightModelColorControl, and LightModelTwoSide are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that param will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModeliv")]
         [CLSCompliant(false)]
-        public static unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the line stipple pattern
@@ -51696,7 +51696,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixd")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(Double[] m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Replace the current matrix with the specified matrix
@@ -51706,7 +51706,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixd")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(ref Double m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Replace the current matrix with the specified matrix
@@ -51716,7 +51716,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixd")]
         [CLSCompliant(false)]
-        public static unsafe void LoadMatrix(Double* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Replace the current matrix with the specified matrix
@@ -51726,7 +51726,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Replace the current matrix with the specified matrix
@@ -51736,7 +51736,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void LoadMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Replace the current matrix with the specified matrix
@@ -51746,7 +51746,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void LoadMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Load a name onto the name stack
@@ -51776,7 +51776,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static void LoadTransposeMatrix(Double[] m) { throw new NotImplementedException(); }
+        public static void LoadTransposeMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Replace the current matrix with the specified row-major ordered matrix
@@ -51786,7 +51786,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static void LoadTransposeMatrix(ref Double m) { throw new NotImplementedException(); }
+        public static void LoadTransposeMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Replace the current matrix with the specified row-major ordered matrix
@@ -51796,7 +51796,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static unsafe void LoadTransposeMatrix(Double* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadTransposeMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Replace the current matrix with the specified row-major ordered matrix
@@ -51806,7 +51806,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadTransposeMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void LoadTransposeMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Replace the current matrix with the specified row-major ordered matrix
@@ -51816,7 +51816,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static void LoadTransposeMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void LoadTransposeMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Replace the current matrix with the specified row-major ordered matrix
@@ -51826,7 +51826,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glLoadTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void LoadTransposeMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void LoadTransposeMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a logical pixel operation for rendering
@@ -51855,12 +51855,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
         [CLSCompliant(false)]
-        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, Double[] points) { throw new NotImplementedException(); }
+        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Double[] points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a one-dimensional evaluator
@@ -51880,12 +51880,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
         [CLSCompliant(false)]
-        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, ref Double points) { throw new NotImplementedException(); }
+        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] ref Double points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a one-dimensional evaluator
@@ -51905,12 +51905,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
         [CLSCompliant(false)]
-        public static unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, Double* points) { throw new NotImplementedException(); }
+        public static unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Double* points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a one-dimensional evaluator
@@ -51930,12 +51930,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
         [CLSCompliant(false)]
-        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, Single[] points) { throw new NotImplementedException(); }
+        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Single[] points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a one-dimensional evaluator
@@ -51955,12 +51955,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
         [CLSCompliant(false)]
-        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, ref Single points) { throw new NotImplementedException(); }
+        public static void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] ref Single points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a one-dimensional evaluator
@@ -51980,12 +51980,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="order">
         /// Specifies the number of control points. Must be positive.
         /// </param>
-        /// <param name="points">[length: target,stride,order]
+        /// <param name="points">[length: COMPSIZE(target,stride,order)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
         [CLSCompliant(false)]
-        public static unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, Single* points) { throw new NotImplementedException(); }
+        public static unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Single* points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52017,12 +52017,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
         [CLSCompliant(false)]
-        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double[] points) { throw new NotImplementedException(); }
+        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Double[] points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52054,12 +52054,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
         [CLSCompliant(false)]
-        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, ref Double points) { throw new NotImplementedException(); }
+        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] ref Double points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52091,12 +52091,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
         [CLSCompliant(false)]
-        public static unsafe void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points) { throw new NotImplementedException(); }
+        public static unsafe void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Double* points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52128,12 +52128,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
         [CLSCompliant(false)]
-        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single[] points) { throw new NotImplementedException(); }
+        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Single[] points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52165,12 +52165,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
         [CLSCompliant(false)]
-        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, ref Single points) { throw new NotImplementedException(); }
+        public static void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] ref Single points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Define a two-dimensional evaluator
@@ -52202,12 +52202,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="vorder">
         /// Specifies the dimension of the control point array in the  axis. Must be positive. The initial value is 1.
         /// </param>
-        /// <param name="points">[length: target,ustride,uorder,vstride,vorder]
+        /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder)]
         /// Specifies a pointer to the array of control points.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
         [CLSCompliant(false)]
-        public static unsafe void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points) { throw new NotImplementedException(); }
+        public static unsafe void Map2(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Single* points) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Map a buffer object's data store
@@ -52391,12 +52391,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify material parameters for the lighting model
@@ -52407,12 +52407,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
         [CLSCompliant(false)]
-        public static unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify material parameters for the lighting model
@@ -52438,12 +52438,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialiv")]
         [CLSCompliant(false)]
-        public static void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify material parameters for the lighting model
@@ -52454,12 +52454,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the single-valued material parameter of the face or faces that is being updated. Must be Shininess.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the value that parameter Shininess will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialiv")]
         [CLSCompliant(false)]
-        public static unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify which matrix is the current matrix
@@ -52514,10 +52514,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52526,7 +52526,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] first, Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "count")] Int32[] first, [CountAttribute(Computed = "drawcount")] Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -52534,10 +52534,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52546,7 +52546,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 first, ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "count")] ref Int32 first, [CountAttribute(Computed = "drawcount")] ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -52554,10 +52554,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52566,7 +52566,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* first, Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "count")] Int32* first, [CountAttribute(Computed = "drawcount")] Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -52574,10 +52574,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52585,7 +52585,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] first, Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "count")] Int32[] first, [CountAttribute(Computed = "drawcount")] Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -52593,10 +52593,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52604,7 +52604,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "count")] ref Int32 first, [CountAttribute(Computed = "drawcount")] ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -52612,10 +52612,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -52623,7 +52623,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "count")] Int32* first, [CountAttribute(Computed = "drawcount")] Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render multiple sets of primitives from array data, taking parameters from memory
@@ -52631,7 +52631,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -52641,7 +52641,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
-        public static void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
+        public static void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render multiple sets of primitives from array data, taking parameters from memory
@@ -52649,7 +52649,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -52660,7 +52660,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -52670,7 +52670,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -52681,7 +52681,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[,] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -52691,7 +52691,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -52702,7 +52702,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[,,] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -52712,7 +52712,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -52722,7 +52722,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] ref T1 indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] ref T1 indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -52732,13 +52732,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52747,7 +52747,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -52755,13 +52755,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52770,7 +52770,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52780,13 +52780,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52795,7 +52795,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52805,13 +52805,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52820,7 +52820,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52830,13 +52830,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52845,7 +52845,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52855,13 +52855,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52870,7 +52870,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -52878,13 +52878,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52893,7 +52893,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52903,13 +52903,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52918,7 +52918,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52928,13 +52928,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52943,7 +52943,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52953,13 +52953,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52968,7 +52968,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -52978,13 +52978,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -52993,7 +52993,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -53001,13 +53001,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53016,7 +53016,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53026,13 +53026,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53041,7 +53041,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53051,13 +53051,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53066,7 +53066,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53076,13 +53076,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53091,7 +53091,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53101,13 +53101,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53115,7 +53115,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -53123,13 +53123,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53137,7 +53137,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53147,13 +53147,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53161,7 +53161,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53171,13 +53171,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53185,7 +53185,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53195,13 +53195,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53209,7 +53209,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53219,13 +53219,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53233,7 +53233,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -53241,13 +53241,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53255,7 +53255,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53265,13 +53265,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53279,7 +53279,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53289,13 +53289,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53303,7 +53303,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53313,13 +53313,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53327,7 +53327,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53337,13 +53337,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53351,7 +53351,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -53359,13 +53359,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53373,7 +53373,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53383,13 +53383,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53397,7 +53397,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53407,13 +53407,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53421,7 +53421,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53431,13 +53431,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -53445,7 +53445,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53455,25 +53455,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32[] basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -53481,25 +53481,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53509,25 +53509,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53537,25 +53537,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53565,25 +53565,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53593,25 +53593,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, ref Int32 basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -53619,25 +53619,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53647,25 +53647,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53675,25 +53675,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53703,25 +53703,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53731,25 +53731,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32* basevertex) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -53757,25 +53757,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53785,25 +53785,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53813,25 +53813,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53841,25 +53841,25 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [Obsolete("Use PrimitiveType overload instead")]
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53869,24 +53869,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32[] basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -53894,24 +53894,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53921,24 +53921,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53948,24 +53948,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -53975,24 +53975,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54002,24 +54002,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, ref Int32 basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -54027,24 +54027,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54054,24 +54054,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54081,24 +54081,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54108,24 +54108,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54135,24 +54135,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32* basevertex) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -54160,24 +54160,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54187,24 +54187,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54214,24 +54214,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54241,24 +54241,24 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -54271,7 +54271,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -54281,7 +54281,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
-        public static void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render indexed primitives from array data, taking parameters from memory
@@ -54292,7 +54292,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -54303,7 +54303,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T2[] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -54316,7 +54316,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -54327,7 +54327,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T2[,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[,] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -54340,7 +54340,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -54351,7 +54351,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T2[,,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[,,] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -54364,7 +54364,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -54374,7 +54374,7 @@ namespace OpenTK.Graphics.OpenGL
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T2 indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.PrimitiveType mode, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] ref T2 indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -54401,7 +54401,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1dv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54426,7 +54426,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1fv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54451,7 +54451,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1iv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54476,7 +54476,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1sv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54504,7 +54504,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54517,7 +54517,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54530,7 +54530,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54558,7 +54558,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54571,7 +54571,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54584,7 +54584,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54612,7 +54612,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54625,7 +54625,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54638,7 +54638,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54666,7 +54666,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54679,7 +54679,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54692,7 +54692,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54723,7 +54723,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54736,7 +54736,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54749,7 +54749,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54780,7 +54780,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54793,7 +54793,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54806,7 +54806,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54837,7 +54837,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54850,7 +54850,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54863,7 +54863,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54894,7 +54894,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54907,7 +54907,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54920,7 +54920,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54954,7 +54954,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54967,7 +54967,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -54980,7 +54980,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55014,7 +55014,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55027,7 +55027,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55040,7 +55040,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55074,7 +55074,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55087,7 +55087,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55100,7 +55100,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55134,7 +55134,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55147,7 +55147,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
         [CLSCompliant(false)]
-        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v) { throw new NotImplementedException(); }
+        public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -55160,7 +55160,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55184,7 +55184,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55192,7 +55192,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55216,7 +55216,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55224,7 +55224,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55248,7 +55248,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55256,7 +55256,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55280,7 +55280,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -55288,7 +55288,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55298,7 +55298,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixd")]
         [CLSCompliant(false)]
-        public static void MultMatrix(Double[] m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55308,7 +55308,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixd")]
         [CLSCompliant(false)]
-        public static void MultMatrix(ref Double m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55318,7 +55318,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixd")]
         [CLSCompliant(false)]
-        public static unsafe void MultMatrix(Double* m) { throw new NotImplementedException(); }
+        public static unsafe void MultMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55328,7 +55328,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static void MultMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55338,7 +55338,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static void MultMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void MultMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix with the specified matrix
@@ -55348,7 +55348,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glMultMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void MultMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void MultMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55358,7 +55358,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static void MultTransposeMatrix(Double[] m) { throw new NotImplementedException(); }
+        public static void MultTransposeMatrix([CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55368,7 +55368,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static void MultTransposeMatrix(ref Double m) { throw new NotImplementedException(); }
+        public static void MultTransposeMatrix([CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55378,7 +55378,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixd")]
         [CLSCompliant(false)]
-        public static unsafe void MultTransposeMatrix(Double* m) { throw new NotImplementedException(); }
+        public static unsafe void MultTransposeMatrix([CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55388,7 +55388,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static void MultTransposeMatrix(Single[] m) { throw new NotImplementedException(); }
+        public static void MultTransposeMatrix([CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55398,7 +55398,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static void MultTransposeMatrix(ref Single m) { throw new NotImplementedException(); }
+        public static void MultTransposeMatrix([CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3][deprecated: v3.2]
         /// Multiply the current matrix with the specified row-major ordered matrix
@@ -55408,7 +55408,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultTransposeMatrixf")]
         [CLSCompliant(false)]
-        public static unsafe void MultTransposeMatrix(Single* m) { throw new NotImplementedException(); }
+        public static unsafe void MultTransposeMatrix([CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="buffer"></param>
@@ -55980,7 +55980,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static void Normal3(Byte[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -55990,7 +55990,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref Byte v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56000,7 +56000,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56010,7 +56010,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static void Normal3(SByte[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56020,7 +56020,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref SByte v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56030,7 +56030,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3bv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56055,7 +56055,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3dv")]
         [CLSCompliant(false)]
-        public static void Normal3(Double[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56065,7 +56065,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3dv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref Double v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56075,7 +56075,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3dv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56100,7 +56100,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3fv")]
         [CLSCompliant(false)]
-        public static void Normal3(Single[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56110,7 +56110,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3fv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref Single v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56120,7 +56120,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56145,7 +56145,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3iv")]
         [CLSCompliant(false)]
-        public static void Normal3(Int32[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56155,7 +56155,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3iv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56165,7 +56165,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56190,7 +56190,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3sv")]
         [CLSCompliant(false)]
-        public static void Normal3(Int16[] v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56200,7 +56200,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3sv")]
         [CLSCompliant(false)]
-        public static void Normal3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Normal3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current normal vector
@@ -56210,7 +56210,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glNormal3sv")]
         [CLSCompliant(false)]
-        public static unsafe void Normal3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Normal3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -56231,14 +56231,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glNormalP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glNormalP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of normals
@@ -56249,11 +56249,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of normals
@@ -56264,12 +56264,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -56282,12 +56282,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -56300,12 +56300,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
         [CLSCompliant(false)]
-        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -56318,11 +56318,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive normals. If stride is 0, the normals are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: type,stride]
+        /// <param name="pointer">[length: COMPSIZE(type,stride)]
         /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
-        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -56338,12 +56338,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a named object identified within a namespace
@@ -56357,12 +56357,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a a sync object identified by a pointer
@@ -56373,11 +56373,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a a sync object identified by a pointer
@@ -56388,12 +56388,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -56406,12 +56406,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -56424,12 +56424,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -56442,11 +56442,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -56489,12 +56489,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, Single[] values) { throw new NotImplementedException(); }
+        public static void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] Single[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -56502,12 +56502,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, ref Single values) { throw new NotImplementedException(); }
+        public static void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] ref Single values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -56515,12 +56515,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, Single* values) { throw new NotImplementedException(); }
+        public static unsafe void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] Single* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -56554,7 +56554,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Single[] values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Single[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56570,7 +56570,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Single values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] ref Single values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56586,7 +56586,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Single* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Single* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56602,7 +56602,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int32[] values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56618,7 +56618,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Int32 values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] ref Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56634,7 +56634,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56650,7 +56650,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt32[] values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56666,7 +56666,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref UInt32 values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] ref UInt32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56682,7 +56682,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt32* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56698,7 +56698,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int16[] values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Int16[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56714,7 +56714,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Int16 values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] ref Int16 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56730,7 +56730,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int16* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Int16* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56746,7 +56746,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt16[] values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt16[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56762,7 +56762,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref UInt16 values) { throw new NotImplementedException(); }
+        public static void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] ref UInt16 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set up pixel transfer maps
@@ -56778,7 +56778,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt16* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt16* values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -56786,7 +56786,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, Int32[] values) { throw new NotImplementedException(); }
+        public static void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [CountAttribute(Parameter = "size")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -56794,7 +56794,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, ref Int32 values) { throw new NotImplementedException(); }
+        public static void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [CountAttribute(Parameter = "size")] ref Int32 values) { throw new NotImplementedException(); }
 
         /// <summary></summary>
         /// <param name="map"></param>
@@ -56802,7 +56802,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="values">[length: size]</param>
         [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPixelMapx")]
         [CLSCompliant(false)]
-        public static unsafe void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [CountAttribute(Parameter = "size")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set pixel storage modes
@@ -56888,12 +56888,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -56901,12 +56901,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -56926,12 +56926,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
         [CLSCompliant(false)]
-        public static void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -56939,12 +56939,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the diameter of rasterized points
@@ -56982,32 +56982,32 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the polygon stippling pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Specifies a pointer to a 32  times  32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPolygonStipple")]
         [CLSCompliant(false)]
-        public static void PolygonStipple(Byte[] mask) { throw new NotImplementedException(); }
+        public static void PolygonStipple([CountAttribute(Computed = "")] Byte[] mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the polygon stippling pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Specifies a pointer to a 32  times  32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPolygonStipple")]
         [CLSCompliant(false)]
-        public static void PolygonStipple(ref Byte mask) { throw new NotImplementedException(); }
+        public static void PolygonStipple([CountAttribute(Computed = "")] ref Byte mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the polygon stippling pattern
         /// </summary>
-        /// <param name="mask">
+        /// <param name="mask">[length: COMPSIZE()]
         /// Specifies a pointer to a 32  times  32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPolygonStipple")]
         [CLSCompliant(false)]
-        public static unsafe void PolygonStipple(Byte* mask) { throw new NotImplementedException(); }
+        public static unsafe void PolygonStipple([CountAttribute(Computed = "")] Byte* mask) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]</summary>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPopAttrib")]
@@ -57065,7 +57065,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static void PrioritizeTextures(Int32 n, Int32[] textures, Single[] priorities) { throw new NotImplementedException(); }
+        public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [CountAttribute(Parameter = "n")] Single[] priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set texture residence priority
@@ -57081,7 +57081,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static void PrioritizeTextures(Int32 n, ref Int32 textures, ref Single priorities) { throw new NotImplementedException(); }
+        public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [CountAttribute(Parameter = "n")] ref Single priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set texture residence priority
@@ -57097,7 +57097,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static unsafe void PrioritizeTextures(Int32 n, Int32* textures, Single* priorities) { throw new NotImplementedException(); }
+        public static unsafe void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [CountAttribute(Parameter = "n")] Single* priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set texture residence priority
@@ -57113,7 +57113,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static void PrioritizeTextures(Int32 n, UInt32[] textures, Single[] priorities) { throw new NotImplementedException(); }
+        public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [CountAttribute(Parameter = "n")] Single[] priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set texture residence priority
@@ -57129,7 +57129,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static void PrioritizeTextures(Int32 n, ref UInt32 textures, ref Single priorities) { throw new NotImplementedException(); }
+        public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [CountAttribute(Parameter = "n")] ref Single priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Set texture residence priority
@@ -57145,7 +57145,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPrioritizeTextures")]
         [CLSCompliant(false)]
-        public static unsafe void PrioritizeTextures(Int32 n, UInt32* textures, Single* priorities) { throw new NotImplementedException(); }
+        public static unsafe void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Single* priorities) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Load a program object with a program binary
@@ -57164,7 +57164,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Load a program object with a program binary
@@ -57183,7 +57183,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57204,7 +57204,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57225,7 +57225,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57246,7 +57246,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57267,7 +57267,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Load a program object with a program binary
@@ -57286,7 +57286,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57307,7 +57307,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57328,7 +57328,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57349,7 +57349,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -57502,7 +57502,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57521,7 +57521,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57540,7 +57540,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57559,7 +57559,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57610,7 +57610,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57629,7 +57629,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57648,7 +57648,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57667,7 +57667,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57718,7 +57718,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57737,7 +57737,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57756,7 +57756,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57775,7 +57775,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57810,7 +57810,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57829,7 +57829,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57886,7 +57886,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57905,7 +57905,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57924,7 +57924,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57943,7 +57943,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57962,7 +57962,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -57981,7 +57981,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58038,7 +58038,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58057,7 +58057,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58076,7 +58076,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58095,7 +58095,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58114,7 +58114,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58133,7 +58133,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58190,7 +58190,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58209,7 +58209,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58228,7 +58228,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58247,7 +58247,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58285,7 +58285,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58304,7 +58304,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58323,7 +58323,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58386,7 +58386,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58405,7 +58405,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58424,7 +58424,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58443,7 +58443,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58462,7 +58462,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58481,7 +58481,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58544,7 +58544,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58563,7 +58563,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58582,7 +58582,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58601,7 +58601,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58620,7 +58620,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58639,7 +58639,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58702,7 +58702,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58721,7 +58721,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58740,7 +58740,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58759,7 +58759,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58778,7 +58778,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58797,7 +58797,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58838,7 +58838,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58857,7 +58857,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58876,7 +58876,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58945,7 +58945,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58964,7 +58964,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -58983,7 +58983,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59002,7 +59002,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59021,7 +59021,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59040,7 +59040,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59109,7 +59109,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59128,7 +59128,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59147,7 +59147,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59166,7 +59166,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59185,7 +59185,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59204,7 +59204,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59273,7 +59273,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59292,7 +59292,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59311,7 +59311,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59330,7 +59330,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59349,7 +59349,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59368,7 +59368,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59412,7 +59412,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59431,7 +59431,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -59450,7 +59450,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59460,7 +59460,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59470,7 +59470,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59480,7 +59480,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59490,7 +59490,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59500,7 +59500,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59510,7 +59510,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59520,7 +59520,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59530,7 +59530,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59540,7 +59540,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59550,7 +59550,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59560,7 +59560,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59570,7 +59570,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59580,7 +59580,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59590,7 +59590,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59600,7 +59600,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59610,7 +59610,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59620,7 +59620,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59630,7 +59630,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59640,7 +59640,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59650,7 +59650,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59660,7 +59660,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59670,7 +59670,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59680,7 +59680,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59690,7 +59690,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59700,7 +59700,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59710,7 +59710,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59720,7 +59720,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59730,7 +59730,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59740,7 +59740,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59750,7 +59750,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59760,7 +59760,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59770,7 +59770,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59780,7 +59780,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59790,7 +59790,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59800,7 +59800,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59810,7 +59810,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59820,7 +59820,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59830,7 +59830,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59840,7 +59840,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59850,7 +59850,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59860,7 +59860,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59870,7 +59870,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59880,7 +59880,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59890,7 +59890,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59900,7 +59900,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59910,7 +59910,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59920,7 +59920,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59930,7 +59930,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59940,7 +59940,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59950,7 +59950,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59960,7 +59960,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59970,7 +59970,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59980,7 +59980,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -59990,7 +59990,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60000,7 +60000,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60010,7 +60010,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60020,7 +60020,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60030,7 +60030,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60040,7 +60040,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60050,7 +60050,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60060,7 +60060,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60070,7 +60070,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60080,7 +60080,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60090,7 +60090,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60100,7 +60100,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60110,7 +60110,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60120,7 +60120,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60130,7 +60130,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60140,7 +60140,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60150,7 +60150,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60160,7 +60160,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60170,7 +60170,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60180,7 +60180,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60190,7 +60190,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60200,7 +60200,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60210,7 +60210,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60220,7 +60220,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60230,7 +60230,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60240,7 +60240,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60250,7 +60250,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60260,7 +60260,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60270,7 +60270,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60280,7 +60280,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60290,7 +60290,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60300,7 +60300,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60310,7 +60310,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60320,7 +60320,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60330,7 +60330,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60340,7 +60340,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60350,7 +60350,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60360,7 +60360,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60370,7 +60370,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60380,7 +60380,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60390,7 +60390,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60400,7 +60400,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60410,7 +60410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60420,7 +60420,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60430,7 +60430,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60440,7 +60440,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60450,7 +60450,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60460,7 +60460,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60470,7 +60470,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60480,7 +60480,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60490,7 +60490,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60500,7 +60500,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60510,7 +60510,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60520,7 +60520,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -60530,7 +60530,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_provoking_vertex|VERSION_3_2]
         /// Specifiy the vertex to be used as the source of data for flat shaded varyings
@@ -60571,12 +60571,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, Int32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, Int32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Push a named debug group into the command stream
@@ -60590,12 +60590,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, UInt32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Push and pop the current matrix stack
@@ -60669,7 +60669,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2dv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(Double[] v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60679,7 +60679,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2dv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(ref Double v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60689,7 +60689,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2dv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos2(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60711,7 +60711,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2fv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(Single[] v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60721,7 +60721,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2fv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(ref Single v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60731,7 +60731,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2fv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos2(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60753,7 +60753,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2iv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(Int32[] v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60763,7 +60763,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2iv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(ref Int32 v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60773,7 +60773,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2iv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos2(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60795,7 +60795,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2sv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(Int16[] v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60805,7 +60805,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2sv")]
         [CLSCompliant(false)]
-        public static void RasterPos2(ref Int16 v) { throw new NotImplementedException(); }
+        public static void RasterPos2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60815,7 +60815,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos2sv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos2(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60840,7 +60840,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3dv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(Double[] v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60850,7 +60850,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3dv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(ref Double v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60860,7 +60860,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3dv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60885,7 +60885,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3fv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(Single[] v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60895,7 +60895,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3fv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(ref Single v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60905,7 +60905,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3fv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60930,7 +60930,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3iv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(Int32[] v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60940,7 +60940,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3iv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60950,7 +60950,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3iv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60975,7 +60975,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3sv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(Int16[] v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60985,7 +60985,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3sv")]
         [CLSCompliant(false)]
-        public static void RasterPos3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void RasterPos3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -60995,7 +60995,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos3sv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61023,7 +61023,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4dv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(Double[] v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61033,7 +61033,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4dv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(ref Double v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61043,7 +61043,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4dv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos4(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos4([CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61071,7 +61071,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4fv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(Single[] v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61081,7 +61081,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4fv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(ref Single v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61091,7 +61091,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4fv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos4(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos4([CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61119,7 +61119,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4iv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(Int32[] v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61129,7 +61129,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4iv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(ref Int32 v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61139,7 +61139,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4iv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos4(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos4([CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61167,7 +61167,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4sv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(Int16[] v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61177,7 +61177,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4sv")]
         [CLSCompliant(false)]
-        public static void RasterPos4(ref Int16 v) { throw new NotImplementedException(); }
+        public static void RasterPos4([CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify the raster position for pixel operations
@@ -61187,7 +61187,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRasterPos4sv")]
         [CLSCompliant(false)]
-        public static unsafe void RasterPos4(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void RasterPos4([CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Select a color buffer source for pixels
@@ -61290,11 +61290,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Read a block of pixels from the frame buffer
@@ -61317,12 +61317,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -61347,12 +61347,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -61377,12 +61377,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -61407,11 +61407,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -61444,7 +61444,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectdv")]
         [CLSCompliant(false)]
-        public static void Rect(Double[] v1, Double[] v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] Double[] v1, [CountAttribute(Count = 2)] Double[] v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61457,7 +61457,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectdv")]
         [CLSCompliant(false)]
-        public static void Rect(ref Double v1, ref Double v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] ref Double v1, [CountAttribute(Count = 2)] ref Double v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61470,7 +61470,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectdv")]
         [CLSCompliant(false)]
-        public static unsafe void Rect(Double* v1, Double* v2) { throw new NotImplementedException(); }
+        public static unsafe void Rect([CountAttribute(Count = 2)] Double* v1, [CountAttribute(Count = 2)] Double* v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61501,7 +61501,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectfv")]
         [CLSCompliant(false)]
-        public static void Rect(Single[] v1, Single[] v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] Single[] v1, [CountAttribute(Count = 2)] Single[] v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61514,7 +61514,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectfv")]
         [CLSCompliant(false)]
-        public static void Rect(ref Single v1, ref Single v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] ref Single v1, [CountAttribute(Count = 2)] ref Single v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61527,7 +61527,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectfv")]
         [CLSCompliant(false)]
-        public static unsafe void Rect(Single* v1, Single* v2) { throw new NotImplementedException(); }
+        public static unsafe void Rect([CountAttribute(Count = 2)] Single* v1, [CountAttribute(Count = 2)] Single* v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61558,7 +61558,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectiv")]
         [CLSCompliant(false)]
-        public static void Rect(Int32[] v1, Int32[] v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] Int32[] v1, [CountAttribute(Count = 2)] Int32[] v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61571,7 +61571,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectiv")]
         [CLSCompliant(false)]
-        public static void Rect(ref Int32 v1, ref Int32 v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] ref Int32 v1, [CountAttribute(Count = 2)] ref Int32 v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61584,7 +61584,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectiv")]
         [CLSCompliant(false)]
-        public static unsafe void Rect(Int32* v1, Int32* v2) { throw new NotImplementedException(); }
+        public static unsafe void Rect([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]</summary>
         /// <param name="x1"></param>
@@ -61605,7 +61605,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectsv")]
         [CLSCompliant(false)]
-        public static void Rect(Int16[] v1, Int16[] v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] Int16[] v1, [CountAttribute(Count = 2)] Int16[] v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61618,7 +61618,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectsv")]
         [CLSCompliant(false)]
-        public static void Rect(ref Int16 v1, ref Int16 v2) { throw new NotImplementedException(); }
+        public static void Rect([CountAttribute(Count = 2)] ref Int16 v1, [CountAttribute(Count = 2)] ref Int16 v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Draw a rectangle
@@ -61631,7 +61631,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glRectsv")]
         [CLSCompliant(false)]
-        public static unsafe void Rect(Int16* v1, Int16* v2) { throw new NotImplementedException(); }
+        public static unsafe void Rect([CountAttribute(Count = 2)] Int16* v1, [CountAttribute(Count = 2)] Int16* v2) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Release resources consumed by the implementation's shader compiler
@@ -61860,13 +61860,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61877,13 +61877,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61894,12 +61894,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61910,12 +61910,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61926,13 +61926,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61943,13 +61943,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61960,12 +61960,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -61976,12 +61976,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62052,155 +62052,155 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, UInt32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref UInt32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, UInt32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, UInt32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, ref UInt32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, UInt32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62211,13 +62211,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62228,13 +62228,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62245,12 +62245,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62261,12 +62261,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62277,13 +62277,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62294,13 +62294,13 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [Obsolete("Use SamplerParameterName overload instead")]
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62311,12 +62311,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -62327,12 +62327,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix by a general scaling matrix
@@ -62391,12 +62391,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(Int32 first, Int32 count, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -62407,12 +62407,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(Int32 first, Int32 count, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -62423,12 +62423,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorArray(Int32 first, Int32 count, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -62439,12 +62439,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(UInt32 first, Int32 count, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -62455,12 +62455,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(UInt32 first, Int32 count, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -62471,12 +62471,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorArray(UInt32 first, Int32 count, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62533,7 +62533,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62546,7 +62546,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62559,7 +62559,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorIndexed(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62572,7 +62572,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62585,7 +62585,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -62598,7 +62598,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorIndexed(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62624,7 +62624,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(SByte[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62634,7 +62634,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref SByte v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62644,7 +62644,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3bv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62669,7 +62669,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(Double[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62679,7 +62679,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref Double v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62689,7 +62689,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3dv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62714,7 +62714,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(Single[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62724,7 +62724,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref Single v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62734,7 +62734,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3fv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62759,7 +62759,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(Int32[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62769,7 +62769,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62779,7 +62779,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3iv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62804,7 +62804,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(Int16[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62814,7 +62814,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62824,7 +62824,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3sv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62849,7 +62849,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(Byte[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62859,7 +62859,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref Byte v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62869,7 +62869,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3ubv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62895,7 +62895,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(UInt32[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62905,7 +62905,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref UInt32 v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62915,7 +62915,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62941,7 +62941,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(UInt16[] v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62951,7 +62951,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
         [CLSCompliant(false)]
-        public static void SecondaryColor3(ref UInt16 v) { throw new NotImplementedException(); }
+        public static void SecondaryColor3([CountAttribute(Count = 3)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Set the current secondary color
@@ -62961,7 +62961,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColor3usv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColor3(UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -62982,14 +62982,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glSecondaryColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glSecondaryColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Define an array of secondary colors
@@ -63003,11 +63003,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
-        public static void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Define an array of secondary colors
@@ -63021,12 +63021,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
         [CLSCompliant(false)]
-        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63042,12 +63042,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
         [CLSCompliant(false)]
-        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63063,12 +63063,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
         [CLSCompliant(false)]
-        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63084,11 +63084,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
-        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63103,7 +63103,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static void SelectBuffer(Int32 size, [OutAttribute] Int32[] buffer) { throw new NotImplementedException(); }
+        public static void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Establish a buffer for selection mode values
@@ -63116,7 +63116,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static void SelectBuffer(Int32 size, [OutAttribute] out Int32 buffer) { throw new NotImplementedException(); }
+        public static void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Establish a buffer for selection mode values
@@ -63129,7 +63129,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static unsafe void SelectBuffer(Int32 size, [OutAttribute] Int32* buffer) { throw new NotImplementedException(); }
+        public static unsafe void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Establish a buffer for selection mode values
@@ -63142,7 +63142,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static void SelectBuffer(Int32 size, [OutAttribute] UInt32[] buffer) { throw new NotImplementedException(); }
+        public static void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32[] buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Establish a buffer for selection mode values
@@ -63155,7 +63155,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static void SelectBuffer(Int32 size, [OutAttribute] out UInt32 buffer) { throw new NotImplementedException(); }
+        public static void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out UInt32 buffer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Establish a buffer for selection mode values
@@ -63168,7 +63168,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
         [CLSCompliant(false)]
-        public static unsafe void SelectBuffer(Int32 size, [OutAttribute] UInt32* buffer) { throw new NotImplementedException(); }
+        public static unsafe void SelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* buffer) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a separable two-dimensional convolution filter
@@ -63191,14 +63191,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
-        public static void SeparableFilter2D(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr row, IntPtr column) { throw new NotImplementedException(); }
+        public static void SeparableFilter2D(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a separable two-dimensional convolution filter
@@ -63221,15 +63221,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] row, [InAttribute, OutAttribute] T7[] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -63255,15 +63255,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] row, [InAttribute, OutAttribute] T7[,] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -63289,15 +63289,15 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] row, [InAttribute, OutAttribute] T7[,,] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,,] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -63323,14 +63323,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 row, [InAttribute, OutAttribute] ref T7 column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] ref T6 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] ref T7 column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -63364,7 +63364,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63386,7 +63386,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63410,7 +63410,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63434,7 +63434,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63458,7 +63458,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63482,7 +63482,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63504,7 +63504,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63528,7 +63528,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63552,7 +63552,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63576,7 +63576,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63600,7 +63600,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63622,7 +63622,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63646,7 +63646,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63670,7 +63670,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63694,7 +63694,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63718,7 +63718,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63740,7 +63740,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63764,7 +63764,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63788,7 +63788,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63812,7 +63812,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63836,7 +63836,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63858,7 +63858,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63882,7 +63882,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63906,7 +63906,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63930,7 +63930,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -63954,7 +63954,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -63976,7 +63976,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -64000,7 +64000,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -64024,7 +64024,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -64048,7 +64048,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -64069,7 +64069,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -64088,7 +64088,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -64107,7 +64107,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -64126,7 +64126,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -64145,7 +64145,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -64164,7 +64164,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_shader_storage_buffer_object|VERSION_4_3]
         /// Change an active shader storage block binding
@@ -64524,7 +64524,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord1dv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord1(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord1([CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64543,7 +64543,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord1fv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord1(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord1([CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64562,7 +64562,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord1iv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord1(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord1([CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64581,7 +64581,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord1sv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord1(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord1([CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64603,7 +64603,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2dv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(Double[] v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64613,7 +64613,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2dv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(ref Double v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64623,7 +64623,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2dv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord2(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64645,7 +64645,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2fv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(Single[] v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64655,7 +64655,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2fv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(ref Single v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64665,7 +64665,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2fv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord2(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64687,7 +64687,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2iv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(Int32[] v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64697,7 +64697,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2iv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(ref Int32 v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64707,7 +64707,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2iv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord2(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64729,7 +64729,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2sv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(Int16[] v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64739,7 +64739,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2sv")]
         [CLSCompliant(false)]
-        public static void TexCoord2(ref Int16 v) { throw new NotImplementedException(); }
+        public static void TexCoord2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64749,7 +64749,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord2sv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord2(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64774,7 +64774,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3dv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(Double[] v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64784,7 +64784,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3dv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(ref Double v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64794,7 +64794,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3dv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64819,7 +64819,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3fv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(Single[] v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64829,7 +64829,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3fv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(ref Single v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64839,7 +64839,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3fv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64864,7 +64864,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3iv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(Int32[] v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64874,7 +64874,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3iv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64884,7 +64884,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3iv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64909,7 +64909,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3sv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(Int16[] v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64919,7 +64919,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3sv")]
         [CLSCompliant(false)]
-        public static void TexCoord3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void TexCoord3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64929,7 +64929,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord3sv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64957,7 +64957,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4dv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(Double[] v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64967,7 +64967,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4dv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(ref Double v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -64977,7 +64977,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4dv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord4(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord4([CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65005,7 +65005,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4fv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(Single[] v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65015,7 +65015,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4fv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(ref Single v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65025,7 +65025,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4fv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord4(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord4([CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65053,7 +65053,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4iv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(Int32[] v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65063,7 +65063,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4iv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(ref Int32 v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65073,7 +65073,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4iv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord4(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord4([CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65101,7 +65101,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4sv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(Int16[] v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65111,7 +65111,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4sv")]
         [CLSCompliant(false)]
-        public static void TexCoord4(ref Int16 v) { throw new NotImplementedException(); }
+        public static void TexCoord4([CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set the current texture coordinates
@@ -65121,7 +65121,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexCoord4sv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoord4(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void TexCoord4([CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -65142,14 +65142,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -65170,14 +65170,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -65198,14 +65198,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -65226,14 +65226,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of texture coordinates
@@ -65247,11 +65247,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of texture coordinates
@@ -65265,12 +65265,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -65286,12 +65286,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -65307,12 +65307,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
         [CLSCompliant(false)]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -65328,11 +65328,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive texture coordinate sets. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
-        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -65360,12 +65360,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set texture environment parameters
@@ -65376,12 +65376,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set texture environment parameters
@@ -65407,12 +65407,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Set texture environment parameters
@@ -65423,12 +65423,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture environment parameter. May be either TextureEnvMode, TextureLodBias, CombineRgb, CombineAlpha, Src0Rgb, Src1Rgb, Src2Rgb, Src0Alpha, Src1Alpha, Src2Alpha, Operand0Rgb, Operand1Rgb, Operand2Rgb, Operand0Alpha, Operand1Alpha, Operand2Alpha, RgbScale, AlphaScale, or CoordReplace.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single symbolic constant, one of Add, AddSigned, Interpolate, Modulate, Decal, Blend, Replace, Subtract, Combine, Texture, Constant, PrimaryColor, Previous, SrcColor, OneMinusSrcColor, SrcAlpha, OneMinusSrcAlpha, a single boolean value for the point sprite texture coordinate replacement, a single floating-point value for the texture level-of-detail bias, or 1.0, 2.0, or 4.0 when specifying the RgbScale or AlphaScale.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
         [CLSCompliant(false)]
-        public static unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]</summary>
         /// <param name="coord"></param>
@@ -65446,12 +65446,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
         [CLSCompliant(false)]
-        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double[] @params) { throw new NotImplementedException(); }
+        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65462,12 +65462,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
         [CLSCompliant(false)]
-        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, ref Double @params) { throw new NotImplementedException(); }
+        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] ref Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65478,12 +65478,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
         [CLSCompliant(false)]
-        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65509,12 +65509,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGenfv")]
         [CLSCompliant(false)]
-        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65525,12 +65525,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGenfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65556,12 +65556,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGeniv")]
         [CLSCompliant(false)]
-        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Control the generation of texture coordinates
@@ -65572,12 +65572,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of the texture-coordinate generation function. Must be TextureGenMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies a single-valued texture generation parameter, one of ObjectLinear, EyeLinear, SphereMap, NormalMap, or ReflectionMap.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGeniv")]
         [CLSCompliant(false)]
-        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a one-dimensional texture image
@@ -65603,11 +65603,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
-        public static void TexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a one-dimensional texture image
@@ -65633,12 +65633,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -65666,12 +65666,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -65699,12 +65699,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,,] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -65732,11 +65732,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T7 pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T7 pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -65767,11 +65767,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image
@@ -65800,12 +65800,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -65836,12 +65836,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -65872,12 +65872,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -65908,11 +65908,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -65970,11 +65970,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Specify a three-dimensional texture image
@@ -66006,12 +66006,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -66045,12 +66045,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -66084,12 +66084,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -66123,11 +66123,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -66182,12 +66182,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -66198,12 +66198,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -66223,50 +66223,50 @@ namespace OpenTK.Graphics.OpenGL
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -66277,12 +66277,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -66293,12 +66293,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_texture_storage|VERSION_4_2]
         /// Simultaneously specify storage for all levels of a one-dimensional texture
@@ -66435,11 +66435,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
-        public static void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Specify a one-dimensional texture subimage
@@ -66462,12 +66462,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -66492,12 +66492,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -66522,12 +66522,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -66552,11 +66552,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -66587,11 +66587,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Specify a two-dimensional texture subimage
@@ -66620,12 +66620,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -66656,12 +66656,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -66692,12 +66692,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -66728,11 +66728,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -66769,11 +66769,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Specify a three-dimensional texture subimage
@@ -66808,12 +66808,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -66850,12 +66850,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -66892,12 +66892,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -66934,11 +66934,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -67839,7 +67839,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify values to record in transform feedback buffers
@@ -67858,7 +67858,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Multiply the current matrix by a translation matrix
@@ -67916,7 +67916,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -67932,7 +67932,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -67948,7 +67948,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -67976,7 +67976,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -67992,7 +67992,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68008,7 +68008,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68036,7 +68036,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68052,7 +68052,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68068,7 +68068,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68097,7 +68097,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68113,7 +68113,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68129,7 +68129,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68160,7 +68160,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68176,7 +68176,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68192,7 +68192,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68223,7 +68223,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68239,7 +68239,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68255,7 +68255,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68286,7 +68286,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68302,7 +68302,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68334,7 +68334,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68350,7 +68350,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68366,7 +68366,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68400,7 +68400,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68416,7 +68416,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68432,7 +68432,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68466,7 +68466,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68482,7 +68482,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68498,7 +68498,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68532,7 +68532,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68548,7 +68548,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68564,7 +68564,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68599,7 +68599,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68615,7 +68615,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68631,7 +68631,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68668,7 +68668,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68684,7 +68684,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -68700,7 +68700,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68737,7 +68737,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68753,7 +68753,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68769,7 +68769,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68806,7 +68806,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68822,7 +68822,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68838,7 +68838,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68876,7 +68876,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68892,7 +68892,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -68908,7 +68908,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Assign a binding point to an active uniform block
@@ -68949,7 +68949,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -68958,7 +68958,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -68967,7 +68967,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -68976,7 +68976,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -68985,7 +68985,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -68994,7 +68994,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69003,7 +69003,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69012,7 +69012,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69021,7 +69021,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69030,7 +69030,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69039,7 +69039,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69048,7 +69048,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69057,7 +69057,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69066,7 +69066,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69075,7 +69075,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69084,7 +69084,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69093,7 +69093,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69102,7 +69102,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69111,7 +69111,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69120,7 +69120,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69129,7 +69129,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69138,7 +69138,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69147,7 +69147,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69156,7 +69156,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69165,7 +69165,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69174,7 +69174,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69183,7 +69183,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69192,7 +69192,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69201,7 +69201,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69210,7 +69210,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69219,7 +69219,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69228,7 +69228,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69237,7 +69237,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69246,7 +69246,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69255,7 +69255,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69264,7 +69264,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69273,7 +69273,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69282,7 +69282,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69291,7 +69291,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69300,7 +69300,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69309,7 +69309,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -69318,7 +69318,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69327,7 +69327,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69336,7 +69336,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69345,7 +69345,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69354,7 +69354,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69363,7 +69363,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69372,7 +69372,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69381,7 +69381,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69390,7 +69390,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -69399,7 +69399,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69408,7 +69408,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69417,7 +69417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -69426,7 +69426,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69442,7 +69442,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, Int32[] indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] Int32[] indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69458,7 +69458,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, ref Int32 indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69474,7 +69474,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, Int32* indices) { throw new NotImplementedException(); }
+        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] Int32* indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69490,7 +69490,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, UInt32[] indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69506,7 +69506,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, ref UInt32 indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -69522,7 +69522,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, UInt32* indices) { throw new NotImplementedException(); }
+        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32* indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]</summary>
         /// <param name="target"></param>
@@ -69653,7 +69653,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2dv")]
         [CLSCompliant(false)]
-        public static void Vertex2(Double[] v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69663,7 +69663,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2dv")]
         [CLSCompliant(false)]
-        public static void Vertex2(ref Double v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69673,7 +69673,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2dv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex2(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69695,7 +69695,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2fv")]
         [CLSCompliant(false)]
-        public static void Vertex2(Single[] v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69705,7 +69705,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2fv")]
         [CLSCompliant(false)]
-        public static void Vertex2(ref Single v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69715,7 +69715,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex2(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69737,7 +69737,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2iv")]
         [CLSCompliant(false)]
-        public static void Vertex2(Int32[] v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69747,7 +69747,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2iv")]
         [CLSCompliant(false)]
-        public static void Vertex2(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69757,7 +69757,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex2(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69779,7 +69779,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2sv")]
         [CLSCompliant(false)]
-        public static void Vertex2(Int16[] v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69789,7 +69789,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2sv")]
         [CLSCompliant(false)]
-        public static void Vertex2(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Vertex2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69799,7 +69799,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex2sv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex2(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69824,7 +69824,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3dv")]
         [CLSCompliant(false)]
-        public static void Vertex3(Double[] v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69834,7 +69834,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3dv")]
         [CLSCompliant(false)]
-        public static void Vertex3(ref Double v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69844,7 +69844,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3dv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69869,7 +69869,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3fv")]
         [CLSCompliant(false)]
-        public static void Vertex3(Single[] v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69879,7 +69879,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3fv")]
         [CLSCompliant(false)]
-        public static void Vertex3(ref Single v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69889,7 +69889,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69914,7 +69914,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3iv")]
         [CLSCompliant(false)]
-        public static void Vertex3(Int32[] v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69924,7 +69924,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3iv")]
         [CLSCompliant(false)]
-        public static void Vertex3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69934,7 +69934,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69959,7 +69959,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3sv")]
         [CLSCompliant(false)]
-        public static void Vertex3(Int16[] v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69969,7 +69969,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3sv")]
         [CLSCompliant(false)]
-        public static void Vertex3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Vertex3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -69979,7 +69979,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex3sv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70007,7 +70007,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4dv")]
         [CLSCompliant(false)]
-        public static void Vertex4(Double[] v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70017,7 +70017,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4dv")]
         [CLSCompliant(false)]
-        public static void Vertex4(ref Double v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70027,7 +70027,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4dv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex4(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex4([CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70055,7 +70055,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4fv")]
         [CLSCompliant(false)]
-        public static void Vertex4(Single[] v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70065,7 +70065,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4fv")]
         [CLSCompliant(false)]
-        public static void Vertex4(ref Single v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70075,7 +70075,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex4(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex4([CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70103,7 +70103,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4iv")]
         [CLSCompliant(false)]
-        public static void Vertex4(Int32[] v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70113,7 +70113,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4iv")]
         [CLSCompliant(false)]
-        public static void Vertex4(ref Int32 v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70123,7 +70123,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex4(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex4([CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70151,7 +70151,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4sv")]
         [CLSCompliant(false)]
-        public static void Vertex4(Int16[] v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70161,7 +70161,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4sv")]
         [CLSCompliant(false)]
-        public static void Vertex4(ref Int16 v) { throw new NotImplementedException(); }
+        public static void Vertex4([CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0][deprecated: v3.2]
         /// Specify a vertex
@@ -70171,7 +70171,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glVertex4sv")]
         [CLSCompliant(false)]
-        public static unsafe void Vertex4(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void Vertex4([CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="vaobj"></param>
@@ -70404,7 +70404,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70417,7 +70417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70456,7 +70456,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70469,7 +70469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70508,7 +70508,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70521,7 +70521,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70566,7 +70566,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70579,7 +70579,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70592,7 +70592,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70605,7 +70605,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70618,7 +70618,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70631,7 +70631,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70676,7 +70676,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70689,7 +70689,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70702,7 +70702,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70715,7 +70715,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70728,7 +70728,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70741,7 +70741,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70786,7 +70786,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70799,7 +70799,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70812,7 +70812,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70825,7 +70825,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70838,7 +70838,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70851,7 +70851,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70902,7 +70902,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70915,7 +70915,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70928,7 +70928,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70941,7 +70941,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70954,7 +70954,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -70967,7 +70967,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71018,7 +71018,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71031,7 +71031,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71044,7 +71044,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71057,7 +71057,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71070,7 +71070,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71083,7 +71083,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71134,7 +71134,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71147,7 +71147,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71160,7 +71160,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71173,7 +71173,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71186,7 +71186,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71199,7 +71199,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71212,7 +71212,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71225,7 +71225,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71238,7 +71238,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71295,7 +71295,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71308,7 +71308,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71321,7 +71321,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71334,7 +71334,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71347,7 +71347,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71360,7 +71360,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71417,7 +71417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71430,7 +71430,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71443,7 +71443,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71456,7 +71456,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71469,7 +71469,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71482,7 +71482,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71495,7 +71495,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71508,7 +71508,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71521,7 +71521,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71534,7 +71534,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71547,7 +71547,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71560,112 +71560,112 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
@@ -71692,84 +71692,84 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71826,7 +71826,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71839,7 +71839,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71852,7 +71852,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71865,7 +71865,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71878,7 +71878,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71891,7 +71891,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71904,7 +71904,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71917,7 +71917,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71930,7 +71930,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71943,7 +71943,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71956,7 +71956,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71969,7 +71969,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71982,7 +71982,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -71995,7 +71995,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -72008,7 +72008,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -72021,7 +72021,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -72034,7 +72034,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -72047,7 +72047,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]
         /// Associate a vertex attribute and a vertex buffer binding
@@ -72164,14 +72164,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(Int32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72185,7 +72185,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72208,42 +72208,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72258,21 +72258,21 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72297,42 +72297,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72348,42 +72348,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72410,126 +72410,126 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -72546,42 +72546,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]</summary>
         /// <param name="attribindex"></param>
@@ -72606,20 +72606,20 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72628,10 +72628,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72640,10 +72640,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72652,10 +72652,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72664,22 +72664,22 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72688,11 +72688,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72701,11 +72701,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72714,11 +72714,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72727,20 +72727,20 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72749,10 +72749,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72761,10 +72761,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72773,10 +72773,10 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72785,22 +72785,22 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72809,11 +72809,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72822,11 +72822,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72835,11 +72835,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [Obsolete("Use VertexAttribIntegerType overload instead")]
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -72862,14 +72862,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL1(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -72892,42 +72892,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL2(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -72952,42 +72952,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL3(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -73014,42 +73014,42 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL4(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]</summary>
         /// <param name="attribindex"></param>
@@ -73077,7 +73077,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -73087,7 +73087,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73099,7 +73099,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73111,7 +73111,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73123,7 +73123,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73136,7 +73136,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -73147,7 +73147,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73160,7 +73160,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73173,7 +73173,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73186,7 +73186,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73198,7 +73198,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -73208,7 +73208,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73220,7 +73220,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73232,7 +73232,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73244,7 +73244,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73257,7 +73257,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -73268,7 +73268,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73281,7 +73281,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73294,7 +73294,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73307,7 +73307,7 @@ namespace OpenTK.Graphics.OpenGL
         [Obsolete("Use VertexAttribDoubleType overload instead")]
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -73336,7 +73336,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73345,7 +73345,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73372,7 +73372,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73381,7 +73381,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73408,7 +73408,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73417,7 +73417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73444,7 +73444,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -73453,7 +73453,7 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -73473,12 +73473,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -73498,12 +73498,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73525,12 +73525,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73552,12 +73552,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73579,12 +73579,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73606,12 +73606,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -73631,12 +73631,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73658,12 +73658,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73685,12 +73685,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73712,12 +73712,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -73766,14 +73766,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -73794,14 +73794,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -73822,14 +73822,14 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of vertex data
@@ -73843,11 +73843,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1][deprecated: v3.2]
         /// Define an array of vertex data
@@ -73861,12 +73861,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -73882,12 +73882,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -73903,12 +73903,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
         [CLSCompliant(false)]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -73924,11 +73924,11 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="stride">
         /// Specifies the byte offset between consecutive vertices. If stride is 0, the vertices are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
-        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+        public static void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -73959,12 +73959,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(Int32 first, Int32 count, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -73975,12 +73975,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(Int32 first, Int32 count, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -73991,12 +73991,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportArray(Int32 first, Int32 count, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -74007,12 +74007,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(UInt32 first, Int32 count, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -74023,12 +74023,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(UInt32 first, Int32 count, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -74039,12 +74039,12 @@ namespace OpenTK.Graphics.OpenGL
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportArray(UInt32 first, Int32 count, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74101,7 +74101,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74114,7 +74114,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74127,7 +74127,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportIndexed(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74140,7 +74140,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74153,7 +74153,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -74166,7 +74166,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportIndexed(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Instruct the GL server to block until the specified sync object becomes signaled
@@ -74271,7 +74271,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2dv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(Double[] v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74281,7 +74281,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2dv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(ref Double v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74291,7 +74291,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2dv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos2(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74313,7 +74313,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2fv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(Single[] v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74323,7 +74323,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2fv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(ref Single v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74333,7 +74333,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2fv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos2(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74355,7 +74355,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2iv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(Int32[] v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74365,7 +74365,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2iv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(ref Int32 v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74375,7 +74375,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2iv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos2(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74397,7 +74397,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2sv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(Int16[] v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74407,7 +74407,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2sv")]
         [CLSCompliant(false)]
-        public static void WindowPos2(ref Int16 v) { throw new NotImplementedException(); }
+        public static void WindowPos2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74417,7 +74417,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos2sv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos2(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74442,7 +74442,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3dv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(Double[] v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74452,7 +74452,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3dv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(ref Double v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74462,7 +74462,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3dv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos3(Double* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74487,7 +74487,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3fv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(Single[] v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74497,7 +74497,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3fv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(ref Single v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74507,7 +74507,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3fv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos3(Single* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74532,7 +74532,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3iv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(Int32[] v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74542,7 +74542,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3iv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(ref Int32 v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74552,7 +74552,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3iv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos3(Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74577,7 +74577,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3sv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(Int16[] v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74587,7 +74587,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3sv")]
         [CLSCompliant(false)]
-        public static void WindowPos3(ref Int16 v) { throw new NotImplementedException(); }
+        public static void WindowPos3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4][deprecated: v3.2]
         /// Specify the raster position in window coordinates for pixel operations
@@ -74597,7 +74597,7 @@ namespace OpenTK.Graphics.OpenGL
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glWindowPos3sv")]
         [CLSCompliant(false)]
-        public static unsafe void WindowPos3(Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         public static partial class Ext
         {
@@ -74663,7 +74663,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static bool AreTexturesResident(Int32 n, Int32[] textures, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+            public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Determine if textures are loaded in texture memory
@@ -74679,7 +74679,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static bool AreTexturesResident(Int32 n, ref Int32 textures, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+            public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Determine if textures are loaded in texture memory
@@ -74695,7 +74695,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static unsafe bool AreTexturesResident(Int32 n, Int32* textures, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+            public static unsafe bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Determine if textures are loaded in texture memory
@@ -74711,7 +74711,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static bool AreTexturesResident(Int32 n, UInt32[] textures, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+            public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Determine if textures are loaded in texture memory
@@ -74727,7 +74727,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static bool AreTexturesResident(Int32 n, ref UInt32 textures, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+            public static bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Determine if textures are loaded in texture memory
@@ -74743,7 +74743,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glAreTexturesResidentEXT")]
             [CLSCompliant(false)]
-            public static unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+            public static unsafe bool AreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Render a vertex using the specified vertex array element
@@ -74914,12 +74914,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="color">
             /// The color number to bind the user-defined varying out variable to
             /// </param>
-            /// <param name="name">[length: name]
+            /// <param name="name">[length: COMPSIZE(name)]
             /// The name of the user-defined varying out variable whose binding to modify
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glBindFragDataLocationEXT")]
             [CLSCompliant(false)]
-            public static void BindFragDataLocation(Int32 program, Int32 color, String name) { throw new NotImplementedException(); }
+            public static void BindFragDataLocation(Int32 program, Int32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Bind a user-defined varying out variable to a fragment shader color number
@@ -74930,12 +74930,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="color">
             /// The color number to bind the user-defined varying out variable to
             /// </param>
-            /// <param name="name">[length: name]
+            /// <param name="name">[length: COMPSIZE(name)]
             /// The name of the user-defined varying out variable whose binding to modify
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glBindFragDataLocationEXT")]
             [CLSCompliant(false)]
-            public static void BindFragDataLocation(UInt32 program, UInt32 color, String name) { throw new NotImplementedException(); }
+            public static void BindFragDataLocation(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Bind a framebuffer to a framebuffer target
@@ -75169,37 +75169,37 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(Byte[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref Byte v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(SByte[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref SByte v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="bx"></param>
@@ -75212,19 +75212,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3dvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(Double[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3dvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref Double v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="bx"></param>
@@ -75237,19 +75237,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3fvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(Single[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3fvEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref Single v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="bx"></param>
@@ -75262,19 +75262,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3ivEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(Int32[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3ivEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref Int32 v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="bx"></param>
@@ -75287,63 +75287,63 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3svEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(Int16[] v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3svEXT")]
             [CLSCompliant(false)]
-            public static void Binormal3(ref Int16 v) { throw new NotImplementedException(); }
+            public static void Binormal3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormal3svEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Binormal3(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void Binormal3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormalPointerEXT")]
-            public static void BinormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void BinormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glBinormalPointerEXT")]
-            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -75545,22 +75545,22 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75569,11 +75569,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75582,11 +75582,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75595,11 +75595,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75608,20 +75608,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75630,10 +75630,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75642,10 +75642,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75654,10 +75654,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+            public static void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75666,22 +75666,22 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75690,11 +75690,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75703,11 +75703,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75716,11 +75716,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75729,20 +75729,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75751,10 +75751,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75763,10 +75763,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75775,10 +75775,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="internalformat"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+            public static void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -75789,11 +75789,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -75802,11 +75802,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75817,11 +75817,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75832,11 +75832,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75847,11 +75847,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75862,11 +75862,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -75875,11 +75875,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75890,11 +75890,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75905,11 +75905,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75920,11 +75920,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75935,11 +75935,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -75948,11 +75948,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75963,11 +75963,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75978,11 +75978,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -75993,11 +75993,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76008,11 +76008,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76021,11 +76021,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76036,11 +76036,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76051,11 +76051,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76066,11 +76066,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76081,10 +76081,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76093,10 +76093,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76107,10 +76107,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76121,10 +76121,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76135,10 +76135,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76149,10 +76149,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76161,10 +76161,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76175,10 +76175,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76189,10 +76189,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76203,10 +76203,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76217,11 +76217,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76230,11 +76230,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76245,11 +76245,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76260,11 +76260,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76275,11 +76275,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76290,11 +76290,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76303,11 +76303,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76318,11 +76318,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76333,11 +76333,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76348,11 +76348,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76363,11 +76363,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76376,11 +76376,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76391,11 +76391,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76406,11 +76406,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76421,11 +76421,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, Int32 format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76436,11 +76436,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76449,11 +76449,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76464,11 +76464,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76479,11 +76479,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76494,11 +76494,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76509,10 +76509,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76521,10 +76521,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76535,10 +76535,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76549,10 +76549,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76563,10 +76563,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 offset, Int32 size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76577,10 +76577,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -76589,10 +76589,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76603,10 +76603,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76617,10 +76617,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76631,10 +76631,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="data">[length: format,type]</param>
+            /// <param name="data">[length: COMPSIZE(format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClearNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 data)
+            public static void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -76678,11 +76678,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glColorPointerEXT")]
-            public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of colors
@@ -76699,12 +76699,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[] pointer)
+            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -76723,12 +76723,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -76747,12 +76747,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -76771,11 +76771,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glColorPointerEXT")]
-            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -76797,11 +76797,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="data">[length: format,type,count]
+            /// <param name="data">[length: COMPSIZE(format,type,count)]
             /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_color_subtable", Version = "", EntryPoint = "glColorSubTableEXT")]
-            public static void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+            public static void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,count")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_color_subtable]
             /// Respecify a portion of a color table
@@ -76821,12 +76821,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="data">[length: format,type,count]
+            /// <param name="data">[length: COMPSIZE(format,type,count)]
             /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_color_subtable", Version = "", EntryPoint = "glColorSubTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] data)
+            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[] data)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -76848,12 +76848,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="data">[length: format,type,count]
+            /// <param name="data">[length: COMPSIZE(format,type,count)]
             /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_color_subtable", Version = "", EntryPoint = "glColorSubTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] data)
+            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,] data)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -76875,12 +76875,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="data">[length: format,type,count]
+            /// <param name="data">[length: COMPSIZE(format,type,count)]
             /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_color_subtable", Version = "", EntryPoint = "glColorSubTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] data)
+            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,,] data)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -76902,11 +76902,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="data">[length: format,type,count]
+            /// <param name="data">[length: COMPSIZE(format,type,count)]
             /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_color_subtable", Version = "", EntryPoint = "glColorSubTableEXT")]
-            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 data)
+            public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] ref T5 data)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -76928,11 +76928,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glColorTableEXT")]
-            public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table) { throw new NotImplementedException(); }
+            public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Define a color lookup table
@@ -76952,12 +76952,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glColorTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -76979,12 +76979,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glColorTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -77006,12 +77006,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glColorTableEXT")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -77033,11 +77033,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glColorTableEXT")]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -77051,7 +77051,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
-            public static void CompressedMultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77064,7 +77064,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77079,7 +77079,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77094,7 +77094,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77108,7 +77108,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
-            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77123,7 +77123,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
-            public static void CompressedMultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77137,7 +77137,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] bits)
+            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77153,7 +77153,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] bits)
+            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77169,7 +77169,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] bits)
+            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77184,7 +77184,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
-            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 bits)
+            public static void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77200,7 +77200,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
-            public static void CompressedMultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77215,7 +77215,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77232,7 +77232,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77249,7 +77249,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77265,7 +77265,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
-            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77279,7 +77279,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
-            public static void CompressedMultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77292,7 +77292,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77307,7 +77307,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77322,7 +77322,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77336,7 +77336,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
-            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77352,7 +77352,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
-            public static void CompressedMultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77367,7 +77367,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77384,7 +77384,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77401,7 +77401,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77417,7 +77417,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
-            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77435,7 +77435,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
-            public static void CompressedMultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedMultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -77452,7 +77452,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[] bits)
+            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -77471,7 +77471,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,] bits)
+            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -77490,7 +77490,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,,] bits)
+            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -77508,7 +77508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="imageSize"></param>
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
-            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T11 bits)
+            public static void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T11 bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -77523,7 +77523,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77536,7 +77536,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77551,7 +77551,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77566,7 +77566,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77581,7 +77581,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77596,7 +77596,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77609,7 +77609,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77624,7 +77624,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77639,7 +77639,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77654,7 +77654,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -77670,7 +77670,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77684,7 +77684,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] bits)
+            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77700,7 +77700,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] bits)
+            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77716,7 +77716,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] bits)
+            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77732,7 +77732,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 bits)
+            public static void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77748,7 +77748,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77762,7 +77762,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] bits)
+            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77778,7 +77778,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] bits)
+            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77794,7 +77794,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] bits)
+            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77810,7 +77810,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 bits)
+            public static void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 bits)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -77827,7 +77827,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77842,7 +77842,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77859,7 +77859,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77876,7 +77876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77893,7 +77893,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77910,7 +77910,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -77925,7 +77925,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77942,7 +77942,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77959,7 +77959,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77976,7 +77976,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -77991,7 +77991,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78004,7 +78004,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78019,7 +78019,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78034,7 +78034,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78049,7 +78049,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78064,7 +78064,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78077,7 +78077,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
+            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78092,7 +78092,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
+            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78107,7 +78107,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
+            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78122,7 +78122,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T7 bits)
+            public static void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 bits)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -78139,7 +78139,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78154,7 +78154,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78171,7 +78171,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78188,7 +78188,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78205,7 +78205,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78222,7 +78222,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78237,7 +78237,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
+            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78254,7 +78254,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
+            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78271,7 +78271,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
+            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T9[,,] bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78288,7 +78288,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T9 bits)
+            public static void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T9 bits)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -78307,7 +78307,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78324,7 +78324,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[] bits)
+            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78343,7 +78343,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,] bits)
+            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78362,7 +78362,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,,] bits)
+            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78381,7 +78381,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T11 bits)
+            public static void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T11 bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78400,7 +78400,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits) { throw new NotImplementedException(); }
+            public static void CompressedTextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -78417,7 +78417,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[] bits)
+            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78436,7 +78436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,] bits)
+            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78455,7 +78455,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,,] bits)
+            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T11[,,] bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78474,7 +78474,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bits">[length: imageSize]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T11 bits)
+            public static void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T11 bits)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -78496,11 +78496,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
-            public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+            public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Define a one-dimensional convolution filter
@@ -78520,12 +78520,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78547,12 +78547,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78574,12 +78574,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78601,11 +78601,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78627,12 +78627,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
-            public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+            public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Define a one-dimensional convolution filter
@@ -78652,13 +78652,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78680,13 +78680,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78708,13 +78708,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78736,12 +78736,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width]
+            /// <param name="image">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter1DEXT")]
-            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 image)
+            public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 image)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -78766,11 +78766,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
-            public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+            public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Define a two-dimensional convolution filter
@@ -78793,12 +78793,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -78823,12 +78823,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -78853,12 +78853,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -78883,11 +78883,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -78912,12 +78912,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
-            public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+            public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Define a two-dimensional convolution filter
@@ -78940,13 +78940,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -78971,13 +78971,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -79002,13 +79002,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -79033,12 +79033,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: format,type,width,height]
+            /// <param name="image">[length: COMPSIZE(format,type,width,height)]
             /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionFilter2DEXT")]
-            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 image)
+            public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 image)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -79082,12 +79082,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79098,12 +79098,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79114,13 +79114,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79131,13 +79131,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79179,12 +79179,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79195,12 +79195,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79211,13 +79211,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Set convolution parameters
@@ -79228,13 +79228,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be set. Must be ConvolutionBorderMode.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_color_subtable]
             /// Respecify a portion of a color table
@@ -79717,49 +79717,49 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies the address of an array of pointers to source code strings from which to create the program object.
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glCreateShaderProgramvEXT")]
-            public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+            public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_cull_vertex]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_cull_vertex", Version = "", EntryPoint = "glCullParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79769,7 +79769,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79779,7 +79779,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79792,7 +79792,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79805,7 +79805,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79818,7 +79818,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79831,7 +79831,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79844,7 +79844,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete framebuffer objects
@@ -79857,7 +79857,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79867,7 +79867,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79877,7 +79877,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79890,7 +79890,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79903,7 +79903,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79916,7 +79916,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79929,7 +79929,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79942,7 +79942,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Delete program pipeline objects
@@ -79955,7 +79955,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glDeleteProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -79965,7 +79965,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -79975,7 +79975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -79988,7 +79988,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -80001,7 +80001,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -80014,7 +80014,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -80027,7 +80027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -80040,7 +80040,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Delete renderbuffer objects
@@ -80053,7 +80053,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glDeleteRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80063,7 +80063,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+            public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80073,7 +80073,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+            public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80086,7 +80086,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+            public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80099,7 +80099,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+            public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80112,7 +80112,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+            public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80125,7 +80125,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+            public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80138,7 +80138,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+            public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Delete named textures
@@ -80151,7 +80151,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glDeleteTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+            public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
@@ -80365,7 +80365,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80373,7 +80373,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -80387,7 +80387,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80396,7 +80396,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80412,7 +80412,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80421,7 +80421,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80437,7 +80437,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80446,7 +80446,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80462,7 +80462,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80470,7 +80470,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80486,14 +80486,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_instanced]
             /// Draw multiple instances of a set of elements
@@ -80507,7 +80507,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80515,7 +80515,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80531,7 +80531,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80539,7 +80539,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80555,7 +80555,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -80563,7 +80563,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
             [CLSCompliant(false)]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80579,14 +80579,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
             /// Specifies the number of instances of the specified range of indices to be rendered.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_instanced", Version = "", EntryPoint = "glDrawElementsInstancedEXT")]
-            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -80608,13 +80608,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_range_elements]
             /// Render primitives from array data
@@ -80634,13 +80634,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80662,13 +80662,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80690,13 +80690,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80718,13 +80718,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80746,13 +80746,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_range_elements]
             /// Render primitives from array data
@@ -80772,13 +80772,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80800,13 +80800,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80828,13 +80828,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80856,13 +80856,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.BeginMode mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80884,12 +80884,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_range_elements]
             /// Render primitives from array data
@@ -80909,12 +80909,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80936,12 +80936,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80963,12 +80963,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -80990,12 +80990,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -81017,12 +81017,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+            public static void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_draw_range_elements]
             /// Render primitives from array data
@@ -81042,12 +81042,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -81069,12 +81069,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -81096,12 +81096,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -81123,12 +81123,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: count,type]
+            /// <param name="indices">[length: COMPSIZE(count,type)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             [AutoGenerated(Category = "EXT_draw_range_elements", Version = "", EntryPoint = "glDrawRangeElementsEXT")]
             [CLSCompliant(false)]
-            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+            public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -81141,12 +81141,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: stride,count]
+            /// <param name="pointer">[length: COMPSIZE(stride,count)]
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glEdgeFlagPointerEXT")]
             [CLSCompliant(false)]
-            public static void EdgeFlagPointer(Int32 stride, Int32 count, bool[] pointer) { throw new NotImplementedException(); }
+            public static void EdgeFlagPointer(Int32 stride, Int32 count, [CountAttribute(Computed = "stride,count")] bool[] pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of edge flags
@@ -81157,12 +81157,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: stride,count]
+            /// <param name="pointer">[length: COMPSIZE(stride,count)]
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glEdgeFlagPointerEXT")]
             [CLSCompliant(false)]
-            public static void EdgeFlagPointer(Int32 stride, Int32 count, ref bool pointer) { throw new NotImplementedException(); }
+            public static void EdgeFlagPointer(Int32 stride, Int32 count, [CountAttribute(Computed = "stride,count")] ref bool pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of edge flags
@@ -81173,12 +81173,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: stride,count]
+            /// <param name="pointer">[length: COMPSIZE(stride,count)]
             /// Specifies a pointer to the first edge flag in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glEdgeFlagPointerEXT")]
             [CLSCompliant(false)]
-            public static unsafe void EdgeFlagPointer(Int32 stride, Int32 count, bool* pointer) { throw new NotImplementedException(); }
+            public static unsafe void EdgeFlagPointer(Int32 stride, Int32 count, [CountAttribute(Computed = "stride,count")] bool* pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Enable or disable client-side capability
@@ -81375,7 +81375,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoorddvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void FogCoord(Double* coord) { throw new NotImplementedException(); }
+            public static unsafe void FogCoord([CountAttribute(Count = 1)] Double* coord) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_fog_coord]
             /// Set the current fog coordinates
@@ -81394,7 +81394,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void FogCoord(Single* coord) { throw new NotImplementedException(); }
+            public static unsafe void FogCoord([CountAttribute(Count = 1)] Single* coord) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_fog_coord]
             /// Define an array of fog coordinates
@@ -81405,12 +81405,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [Obsolete("Use FogPointerTypeExt overload instead")]
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
-            public static void FogCoordPointer(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void FogCoordPointer(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_fog_coord]
             /// Define an array of fog coordinates
@@ -81421,13 +81421,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [Obsolete("Use FogPointerTypeExt overload instead")]
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81440,13 +81440,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [Obsolete("Use FogPointerTypeExt overload instead")]
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81459,13 +81459,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [Obsolete("Use FogPointerTypeExt overload instead")]
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81478,12 +81478,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [Obsolete("Use FogPointerTypeExt overload instead")]
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81496,11 +81496,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
-            public static void FogCoordPointer(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void FogCoordPointer(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_fog_coord]
             /// Define an array of fog coordinates
@@ -81511,12 +81511,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81529,12 +81529,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81547,12 +81547,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81565,11 +81565,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride]
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]
             /// Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_fog_coord", Version = "", EntryPoint = "glFogCoordPointerEXT")]
-            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerTypeExt type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -81593,7 +81593,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
+            public static void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81601,7 +81601,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs) { throw new NotImplementedException(); }
+            public static void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81609,7 +81609,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode* bufs) { throw new NotImplementedException(); }
+            public static unsafe void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBufferMode* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81617,7 +81617,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
+            public static void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81625,7 +81625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs) { throw new NotImplementedException(); }
+            public static void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81633,7 +81633,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufs">[length: n]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode* bufs) { throw new NotImplementedException(); }
+            public static unsafe void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL.DrawBufferMode* bufs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
@@ -81898,7 +81898,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate framebuffer object names
@@ -81911,7 +81911,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate framebuffer object names
@@ -81924,7 +81924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate framebuffer object names
@@ -81937,7 +81937,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate framebuffer object names
@@ -81950,7 +81950,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+            public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate framebuffer object names
@@ -81963,7 +81963,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenFramebuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -81983,7 +81983,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -81996,7 +81996,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -82009,7 +82009,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -82022,7 +82022,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -82035,7 +82035,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+            public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Reserve program pipeline object names
@@ -82048,7 +82048,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGenProgramPipelinesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+            public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82068,7 +82068,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82081,7 +82081,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82094,7 +82094,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82107,7 +82107,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82120,7 +82120,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+            public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Generate renderbuffer object names
@@ -82133,7 +82133,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGenRenderbuffersEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+            public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="datatype"></param>
@@ -82171,7 +82171,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+            public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Generate texture names
@@ -82184,7 +82184,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+            public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Generate texture names
@@ -82197,7 +82197,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+            public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Generate texture names
@@ -82210,7 +82210,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+            public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Generate texture names
@@ -82223,7 +82223,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+            public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Generate texture names
@@ -82236,7 +82236,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glGenTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+            public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="range"></param>
@@ -82253,104 +82253,104 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.All target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use All overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetBooleanIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Retrieve contents of a color lookup table
@@ -82364,11 +82364,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="data">[length: target,format,type]
+            /// <param name="data">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableEXT")]
-            public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Retrieve contents of a color lookup table
@@ -82382,12 +82382,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="data">[length: target,format,type]
+            /// <param name="data">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] data)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82403,12 +82403,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="data">[length: target,format,type]
+            /// <param name="data">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82424,12 +82424,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="data">[length: target,format,type]
+            /// <param name="data">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82445,11 +82445,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="data">[length: target,format,type]
+            /// <param name="data">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableEXT")]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82462,12 +82462,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Get color lookup table parameters
@@ -82478,12 +82478,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Get color lookup table parameters
@@ -82494,12 +82494,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Get color lookup table parameters
@@ -82510,12 +82510,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Get color lookup table parameters
@@ -82526,12 +82526,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_paletted_texture]
             /// Get color lookup table parameters
@@ -82542,29 +82542,29 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "EXT_paletted_texture", Version = "", EntryPoint = "glGetColorTableParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
-            public static void GetCompressedMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetCompressedMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute, CountAttribute(Computed = "target,lod")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[] img)
+            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82572,10 +82572,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,] img)
+            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82583,10 +82583,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,,] img)
+            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82594,9 +82594,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
-            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] ref T3 img)
+            public static void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] ref T3 img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82604,19 +82604,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetCompressedTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute, CountAttribute(Computed = "target,lod")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[] img)
+            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82624,10 +82624,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,] img)
+            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82635,10 +82635,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,,] img)
+            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82646,10 +82646,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] ref T3 img)
+            public static void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] ref T3 img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82657,19 +82657,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetCompressedTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute, CountAttribute(Computed = "target,lod")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[] img)
+            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82677,10 +82677,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,] img)
+            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82688,10 +82688,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,,] img)
+            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] T3[,,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82699,10 +82699,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="lod"></param>
-            /// <param name="img">[length: target,lod]</param>
+            /// <param name="img">[length: COMPSIZE(target,lod)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] ref T3 img)
+            public static void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute, CountAttribute(Computed = "target,lod")] ref T3 img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82718,11 +82718,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
-            public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+            public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get current 1D or 2D convolution filter kernel
@@ -82736,12 +82736,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82757,12 +82757,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82778,12 +82778,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82799,11 +82799,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82819,12 +82819,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
-            public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+            public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get current 1D or 2D convolution filter kernel
@@ -82838,13 +82838,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82860,13 +82860,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82882,13 +82882,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82904,12 +82904,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="image">[length: target,format,type]
+            /// <param name="image">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the output image.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionFilterEXT")]
-            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 image)
+            public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 image)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -82922,12 +82922,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -82938,12 +82938,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -82954,12 +82954,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -82970,13 +82970,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -82987,13 +82987,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83004,13 +83004,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83021,12 +83021,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83037,12 +83037,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83053,12 +83053,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTargetExt target, OpenTK.Graphics.OpenGL.ConvolutionParameterExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83069,13 +83069,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83086,13 +83086,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get convolution parameters
@@ -83103,205 +83103,205 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the parameters to be retrieved.
             /// </param>
             [Obsolete("Use ConvolutionTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetConvolutionParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoublei_vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetDouble(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+            public static unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+            public static void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+            public static unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
             /// <param name="index"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloati_vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFloat(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Query the bindings of color numbers to user-defined varying out variables
@@ -83309,12 +83309,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">
             /// The name of the program containing varying out variable whose binding to query
             /// </param>
-            /// <param name="name">[length: name]
+            /// <param name="name">[length: COMPSIZE(name)]
             /// The name of the user-defined varying out variable whose binding to query
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetFragDataLocationEXT")]
             [CLSCompliant(false)]
-            public static Int32 GetFragDataLocation(Int32 program, String name) { throw new NotImplementedException(); }
+            public static Int32 GetFragDataLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Query the bindings of color numbers to user-defined varying out variables
@@ -83322,12 +83322,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">
             /// The name of the program containing varying out variable whose binding to query
             /// </param>
-            /// <param name="name">[length: name]
+            /// <param name="name">[length: COMPSIZE(name)]
             /// The name of the user-defined varying out variable whose binding to query
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetFragDataLocationEXT")]
             [CLSCompliant(false)]
-            public static Int32 GetFragDataLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+            public static Int32 GetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -83341,12 +83341,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -83360,12 +83360,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about attachments of a bound framebuffer object
@@ -83379,12 +83379,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter of attachment to query.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of a variable receive the value of pname for attachment.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83395,12 +83395,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83411,12 +83411,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83427,12 +83427,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83443,12 +83443,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83459,12 +83459,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Retrieve a named parameter from a framebuffer
@@ -83475,12 +83475,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// A token indicating the parameter to be retrieved.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// The address of a variable to receive the value of the parameter named pname.
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram table
@@ -83497,12 +83497,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
-            public static void GetHistogram(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetHistogram(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram table
@@ -83519,13 +83519,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83544,13 +83544,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83569,13 +83569,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83594,12 +83594,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83618,11 +83618,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
-            public static void GetHistogram(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetHistogram(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram table
@@ -83639,12 +83639,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83663,12 +83663,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83687,12 +83687,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83711,11 +83711,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned histogram table.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramEXT")]
-            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+            public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -83728,13 +83728,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83745,13 +83745,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83762,13 +83762,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83779,12 +83779,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83795,12 +83795,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83811,12 +83811,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83827,13 +83827,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83844,13 +83844,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83861,13 +83861,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use HistogramTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83878,12 +83878,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83894,12 +83894,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get histogram parameters
@@ -83910,402 +83910,402 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetHistogramParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTargetExt target, OpenTK.Graphics.OpenGL.GetHistogramParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [Obsolete("Use GetIndexedPName overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_draw_buffers2]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="data">[length: target]</param>
+            /// <param name="data">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_draw_buffers2", Version = "", EntryPoint = "glGetIntegerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetInvariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetLocalConstantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minimum and maximum pixel values
@@ -84322,12 +84322,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
-            public static void GetMinmax(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetMinmax(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minimum and maximum pixel values
@@ -84344,13 +84344,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84369,13 +84369,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84394,13 +84394,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84419,12 +84419,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84443,11 +84443,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
-            public static void GetMinmax(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetMinmax(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minimum and maximum pixel values
@@ -84464,12 +84464,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84488,12 +84488,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84512,12 +84512,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84536,11 +84536,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="values">[length: target,format,type]
+            /// <param name="values">[length: COMPSIZE(target,format,type)]
             /// A pointer to storage for the returned values.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxEXT")]
-            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+            public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -84553,13 +84553,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84570,13 +84570,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84587,13 +84587,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84604,12 +84604,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84620,12 +84620,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84636,12 +84636,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84652,13 +84652,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84669,13 +84669,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84686,13 +84686,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [Obsolete("Use MinmaxTargetExt overload instead")]
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84703,12 +84703,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84719,12 +84719,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Get minmax parameters
@@ -84735,147 +84735,147 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to storage for the retrieved parameters.
             /// </param>
             [AutoGenerated(Category = "EXT_histogram", Version = "", EntryPoint = "glGetMinmaxParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTargetExt target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPNameExt pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -84883,9 +84883,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
-            public static void GetMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+            public static void GetMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -84893,10 +84893,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] pixels)
+            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -84906,10 +84906,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] pixels)
+            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -84919,10 +84919,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] pixels)
+            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -84932,9 +84932,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
-            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 pixels)
+            public static void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] ref T5 pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -84943,270 +84943,270 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -85214,7 +85214,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferPointer(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -85222,7 +85222,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85232,7 +85232,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85242,7 +85242,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85252,7 +85252,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85263,7 +85263,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferPointer(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -85272,7 +85272,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85283,7 +85283,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85294,7 +85294,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85305,7 +85305,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85315,7 +85315,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferPointer(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -85323,7 +85323,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85333,7 +85333,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85343,7 +85343,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85353,7 +85353,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85364,7 +85364,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferPointer(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -85373,7 +85373,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85384,7 +85384,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85395,7 +85395,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85406,7 +85406,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -85414,19 +85414,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData(Int32 buffer, IntPtr offset, Int32 size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetNamedBufferSubData(Int32 buffer, IntPtr offset, Int32 size, [OutAttribute, CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85434,10 +85434,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85445,10 +85445,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85456,10 +85456,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85467,19 +85467,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetNamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85487,10 +85487,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85498,10 +85498,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85509,10 +85509,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85520,19 +85520,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, Int32 size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, Int32 size, [OutAttribute, CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85540,10 +85540,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85551,10 +85551,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85562,10 +85562,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85573,19 +85573,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85593,10 +85593,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85604,10 +85604,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85615,10 +85615,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -85626,103 +85626,103 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="attachment"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="framebuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85732,7 +85732,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use ProgramProperty overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85742,7 +85742,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use ProgramProperty overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85751,7 +85751,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85760,7 +85760,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85770,7 +85770,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use ProgramProperty overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85780,7 +85780,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use ProgramProperty overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85789,7 +85789,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85798,7 +85798,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85807,7 +85807,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85816,7 +85816,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85825,7 +85825,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85834,7 +85834,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85843,7 +85843,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85852,7 +85852,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85861,7 +85861,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85870,7 +85870,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85879,7 +85879,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85888,7 +85888,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85897,7 +85897,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85906,7 +85906,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85915,7 +85915,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85924,7 +85924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85933,7 +85933,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85942,7 +85942,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85951,7 +85951,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85960,7 +85960,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85969,7 +85969,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85978,7 +85978,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -85987,25 +85987,25 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @string) { throw new NotImplementedException(); }
+            public static void GetNamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "program,pname")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[] @string)
+            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86013,10 +86013,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[,] @string)
+            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86024,10 +86024,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[,,] @string)
+            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[,,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86035,10 +86035,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T3 @string)
+            public static void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] ref T3 @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86046,19 +86046,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @string) { throw new NotImplementedException(); }
+            public static void GetNamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Computed = "program,pname")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[] @string)
+            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86066,10 +86066,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[,] @string)
+            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86077,10 +86077,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T3[,,] @string)
+            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] T3[,,] @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -86088,60 +86088,60 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@string">[length: program,pname]</param>
+            /// <param name="@string">[length: COMPSIZE(program,pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T3 @string)
+            public static void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Computed = "program,pname")] ref T3 @string)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="renderbuffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86163,7 +86163,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86185,7 +86185,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86207,7 +86207,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, Int32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86229,7 +86229,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86251,7 +86251,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_debug_label]
             /// Retrieve the label of a named object identified within a namespace
@@ -86273,55 +86273,55 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_debug_label", Version = "", EntryPoint = "glGetObjectLabelEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ExtDebugLabel type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glGetPixelTransformParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
@@ -86329,7 +86329,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetPointer(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
@@ -86337,7 +86337,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86347,7 +86347,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86357,7 +86357,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86367,7 +86367,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86377,7 +86377,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetPointer(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="pname"></param>
@@ -86385,7 +86385,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute] T2[] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86395,7 +86395,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute] T2[,] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86405,7 +86405,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute] T2[,,] @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86415,7 +86415,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointeri_vEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute] ref T2 @params)
+            public static void GetPointer<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86425,7 +86425,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
@@ -86433,7 +86433,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86443,7 +86443,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[,] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86453,7 +86453,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[,,] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86463,7 +86463,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] ref T2 data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86473,7 +86473,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="target"></param>
@@ -86481,7 +86481,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86491,7 +86491,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[,] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86501,7 +86501,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[,,] data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86511,7 +86511,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
             [CLSCompliant(false)]
-            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] ref T2 data)
+            public static void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -86519,14 +86519,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glGetPointervEXT")]
-            public static void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+            public static void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]</summary>
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glGetPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -86535,7 +86535,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glGetPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -86544,7 +86544,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glGetPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -86552,7 +86552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname"></param>
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glGetPointervEXT")]
-            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+            public static void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -86574,7 +86574,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -86594,7 +86594,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -86614,7 +86614,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -86634,7 +86634,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -86654,7 +86654,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve the info log string from a program pipeline object
@@ -86674,7 +86674,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "", EntryPoint = "glGetProgramPipelineInfoLogEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_separate_shader_objects]
             /// Retrieve properties of a program pipeline object
@@ -86781,12 +86781,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86797,12 +86797,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86813,12 +86813,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86829,12 +86829,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86845,12 +86845,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86861,12 +86861,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjecti64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86877,12 +86877,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86893,12 +86893,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_timer_query]
             /// Return parameters of a query object
@@ -86909,12 +86909,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
             /// </param>
             [AutoGenerated(Category = "EXT_timer_query", Version = "", EntryPoint = "glGetQueryObjectui64vEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -86925,12 +86925,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -86941,12 +86941,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_framebuffer_object]
             /// Retrieve information about a bound renderbuffer object
@@ -86957,12 +86957,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Specifies the address of an array to receive the value of the queried parameter.
             /// </param>
             [AutoGenerated(Category = "EXT_framebuffer_object", Version = "", EntryPoint = "glGetRenderbufferParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get separable convolution filter kernel images
@@ -86976,17 +86976,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type]
+            /// <param name="row">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the row filter image.
             /// </param>
-            /// <param name="column">[length: target,format,type]
+            /// <param name="column">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the column filter image.
             /// </param>
-            /// <param name="span">[length: target,format,type]
+            /// <param name="span">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the span filter image (currently unused).
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetSeparableFilterEXT")]
-            public static void GetSeparableFilter(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span) { throw new NotImplementedException(); }
+            public static void GetSeparableFilter(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Get separable convolution filter kernel images
@@ -87000,18 +87000,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type]
+            /// <param name="row">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the row filter image.
             /// </param>
-            /// <param name="column">[length: target,format,type]
+            /// <param name="column">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the column filter image.
             /// </param>
-            /// <param name="span">[length: target,format,type]
+            /// <param name="span">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the span filter image (currently unused).
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetSeparableFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] row, [InAttribute, OutAttribute] T4[] column, [InAttribute, OutAttribute] T5[] span)
+            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[] span)
                 where T3 : struct
                 where T4 : struct
                 where T5 : struct
@@ -87029,18 +87029,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type]
+            /// <param name="row">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the row filter image.
             /// </param>
-            /// <param name="column">[length: target,format,type]
+            /// <param name="column">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the column filter image.
             /// </param>
-            /// <param name="span">[length: target,format,type]
+            /// <param name="span">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the span filter image (currently unused).
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetSeparableFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] row, [InAttribute, OutAttribute] T4[,] column, [InAttribute, OutAttribute] T5[,] span)
+            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,] span)
                 where T3 : struct
                 where T4 : struct
                 where T5 : struct
@@ -87058,18 +87058,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type]
+            /// <param name="row">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the row filter image.
             /// </param>
-            /// <param name="column">[length: target,format,type]
+            /// <param name="column">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the column filter image.
             /// </param>
-            /// <param name="span">[length: target,format,type]
+            /// <param name="span">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the span filter image (currently unused).
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetSeparableFilterEXT")]
             [CLSCompliant(false)]
-            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] row, [InAttribute, OutAttribute] T4[,,] column, [InAttribute, OutAttribute] T5[,,] span)
+            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,,] span)
                 where T3 : struct
                 where T4 : struct
                 where T5 : struct
@@ -87087,17 +87087,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type]
+            /// <param name="row">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the row filter image.
             /// </param>
-            /// <param name="column">[length: target,format,type]
+            /// <param name="column">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the column filter image.
             /// </param>
-            /// <param name="span">[length: target,format,type]
+            /// <param name="span">[length: COMPSIZE(target,format,type)]
             /// Pointer to storage for the span filter image (currently unused).
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glGetSeparableFilterEXT")]
-            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 row, [InAttribute, OutAttribute] ref T4 column, [InAttribute, OutAttribute] ref T5 span)
+            public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T5 span)
                 where T3 : struct
                 where T4 : struct
                 where T5 : struct
@@ -87106,50 +87106,50 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glGetTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -87157,10 +87157,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+            public static void GetTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -87168,10 +87168,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] pixels)
+            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87181,10 +87181,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] pixels)
+            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87194,10 +87194,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] pixels)
+            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87207,10 +87207,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 pixels)
+            public static void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] ref T5 pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87220,10 +87220,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+            public static void GetTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -87231,10 +87231,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] pixels)
+            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87244,10 +87244,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] pixels)
+            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87257,10 +87257,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] pixels)
+            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T5[,,] pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87270,10 +87270,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="level"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: target,level,format,type]</param>
+            /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 pixels)
+            public static void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] ref T5 pixels)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -87282,309 +87282,309 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87612,7 +87612,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87640,7 +87640,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87668,7 +87668,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87696,7 +87696,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87724,7 +87724,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87752,7 +87752,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87780,7 +87780,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -87808,7 +87808,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_bindable_uniform]</summary>
             /// <param name="program"></param>
@@ -87847,12 +87847,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Returns the value of a uniform variable
@@ -87863,12 +87863,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Returns the value of a uniform variable
@@ -87879,12 +87879,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Returns the value of a uniform variable
@@ -87895,12 +87895,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Returns the value of a uniform variable
@@ -87911,12 +87911,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Returns the value of a uniform variable
@@ -87927,250 +87927,250 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glGetUniformuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+            public static void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+            public static void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out bool data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantBooleanvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] bool* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+            public static void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+            public static void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Single data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantFloatvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Single* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+            public static void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32[] data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+            public static void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] out Int32 data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantIntegervEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+            public static unsafe void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetVariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[] data)
+            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[,] data)
+            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[,,] data)
+            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[,,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] ref T2 data)
+            public static void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] ref T2 data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void GetVariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute, CountAttribute(Computed = "id")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[] data)
+            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[,] data)
+            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] T2[,,] data)
+            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] T2[,,] data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="value"></param>
-            /// <param name="data">[length: id]</param>
+            /// <param name="data">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glGetVariantPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] ref T2 data)
+            public static void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute, CountAttribute(Computed = "id")] ref T2 data)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88388,7 +88388,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr param) { throw new NotImplementedException(); }
+            public static void GetVertexArrayPointer(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="vaobj"></param>
@@ -88396,7 +88396,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[] param)
+            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88406,7 +88406,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,] param)
+            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88416,7 +88416,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,,] param)
+            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88426,7 +88426,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T2 param)
+            public static void GetVertexArrayPointer<T2>(Int32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88436,7 +88436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr param) { throw new NotImplementedException(); }
+            public static void GetVertexArrayPointer(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="vaobj"></param>
@@ -88444,7 +88444,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[] param)
+            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88454,7 +88454,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,] param)
+            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88464,7 +88464,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] T2[,,] param)
+            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88474,7 +88474,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="param">[length: 1]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetVertexArrayPointervEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] ref T2 param)
+            public static void GetVertexArrayPointer<T2>(UInt32 vaobj, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 param)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -88484,7 +88484,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -88492,7 +88492,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -88500,7 +88500,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -88508,7 +88508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -88516,7 +88516,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -88524,55 +88524,55 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glGetVertexAttribLdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_histogram]
             /// Define histogram table
@@ -88651,11 +88651,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glIndexPointerEXT")]
-            public static void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [CountAttribute(Computed = "type,stride,count")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of color indexes
@@ -88669,12 +88669,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glIndexPointerEXT")]
             [CLSCompliant(false)]
-            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[] pointer)
+            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -88690,12 +88690,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glIndexPointerEXT")]
             [CLSCompliant(false)]
-            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -88711,12 +88711,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glIndexPointerEXT")]
             [CLSCompliant(false)]
-            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -88732,11 +88732,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first index in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glIndexPointerEXT")]
-            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -88992,42 +88992,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m) { throw new NotImplementedException(); }
+            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m) { throw new NotImplementedException(); }
+            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m) { throw new NotImplementedException(); }
+            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m) { throw new NotImplementedException(); }
+            public static void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
@@ -89039,126 +89039,126 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m) { throw new NotImplementedException(); }
+            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m) { throw new NotImplementedException(); }
+            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m) { throw new NotImplementedException(); }
+            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
             [CLSCompliant(false)]
-            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m) { throw new NotImplementedException(); }
+            public static void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m) { throw new NotImplementedException(); }
+            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m) { throw new NotImplementedException(); }
+            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m) { throw new NotImplementedException(); }
+            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m) { throw new NotImplementedException(); }
+            public static void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m) { throw new NotImplementedException(); }
+            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m) { throw new NotImplementedException(); }
+            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Double m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Double* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m) { throw new NotImplementedException(); }
+            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
             [CLSCompliant(false)]
-            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m) { throw new NotImplementedException(); }
+            public static void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] ref Single m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m) { throw new NotImplementedException(); }
+            public static unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, [CountAttribute(Count = 16)] Single* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="mode"></param>
@@ -89288,10 +89288,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89300,7 +89300,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -89308,10 +89308,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89320,7 +89320,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -89328,10 +89328,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89340,7 +89340,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -89348,10 +89348,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89359,7 +89359,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] first, Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -89367,10 +89367,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89378,7 +89378,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives from array data
@@ -89386,10 +89386,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="first">[length: primcount]
+            /// <param name="first">[length: COMPSIZE(primcount)]
             /// Points to an array of starting indices in the enabled arrays.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the number of indices to be rendered.
             /// </param>
             /// <param name="primcount">
@@ -89397,7 +89397,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawArraysEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89405,13 +89405,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89420,7 +89420,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89428,13 +89428,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89443,7 +89443,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89453,13 +89453,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89468,7 +89468,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89478,13 +89478,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89493,7 +89493,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89503,13 +89503,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89518,7 +89518,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89528,13 +89528,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89543,7 +89543,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89551,13 +89551,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89566,7 +89566,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89576,13 +89576,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89591,7 +89591,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89601,13 +89601,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89616,7 +89616,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89626,13 +89626,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89641,7 +89641,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89651,13 +89651,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89666,7 +89666,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89674,13 +89674,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89689,7 +89689,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89699,13 +89699,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89714,7 +89714,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89724,13 +89724,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89739,7 +89739,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89749,13 +89749,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89764,7 +89764,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use PrimitiveType overload instead")]
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.BeginMode mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89774,13 +89774,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89788,7 +89788,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89796,13 +89796,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89810,7 +89810,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89820,13 +89820,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89834,7 +89834,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89844,13 +89844,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89858,7 +89858,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89868,13 +89868,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89882,7 +89882,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89892,13 +89892,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89906,7 +89906,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -89914,13 +89914,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89928,7 +89928,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89938,13 +89938,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89952,7 +89952,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89962,13 +89962,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -89976,7 +89976,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -89986,13 +89986,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90000,7 +90000,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -90010,13 +90010,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90024,7 +90024,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
+            public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_multi_draw_arrays]
             /// Render multiple sets of primitives by specifying indices of array data elements
@@ -90032,13 +90032,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90046,7 +90046,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -90056,13 +90056,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90070,7 +90070,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -90080,13 +90080,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90094,7 +90094,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -90104,13 +90104,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="mode">
             /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
             /// </param>
-            /// <param name="count">[length: primcount]
+            /// <param name="count">[length: COMPSIZE(primcount)]
             /// Points to an array of the elements counts.
             /// </param>
             /// <param name="type">
             /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
             /// </param>
-            /// <param name="indices">[length: primcount]
+            /// <param name="indices">[length: COMPSIZE(primcount)]
             /// Specifies a pointer to the location where the indices are stored.
             /// </param>
             /// <param name="primcount">
@@ -90118,7 +90118,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "", EntryPoint = "glMultiDrawElementsEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount)
+            public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -90145,19 +90145,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
-            public static void MultiTexCoordPointer(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void MultiTexCoordPointer(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -90166,10 +90166,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -90178,10 +90178,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -90190,9 +90190,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
-            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -90208,19 +90208,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90234,19 +90234,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90260,28 +90260,28 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, ref Double @params) { throw new NotImplementedException(); }
+            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90295,19 +90295,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90321,19 +90321,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90344,10 +90344,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
-            public static void MultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90358,11 +90358,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90375,11 +90375,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90392,11 +90392,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90409,10 +90409,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90425,9 +90425,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
-            public static void MultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90438,10 +90438,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90454,10 +90454,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90470,10 +90470,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90486,9 +90486,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
-            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -90502,10 +90502,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
-            public static void MultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90517,11 +90517,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90535,11 +90535,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90553,11 +90553,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90571,10 +90571,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90588,9 +90588,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
-            public static void MultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90602,10 +90602,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90619,10 +90619,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90636,10 +90636,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90653,9 +90653,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
-            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -90670,10 +90670,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
-            public static void MultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90686,11 +90686,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90705,11 +90705,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90724,11 +90724,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90743,10 +90743,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90761,9 +90761,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
-            public static void MultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90776,10 +90776,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90794,10 +90794,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90812,10 +90812,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90830,9 +90830,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
-            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -90848,19 +90848,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90874,73 +90874,73 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90966,9 +90966,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
-            public static void MultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -90978,10 +90978,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
+            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -90993,10 +90993,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
+            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -91008,10 +91008,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
+            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -91023,9 +91023,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
-            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T7 pixels)
+            public static void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T7 pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -91039,9 +91039,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
-            public static void MultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -91053,10 +91053,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -91070,10 +91070,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -91087,10 +91087,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -91104,9 +91104,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
-            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -91122,9 +91122,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
-            public static void MultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void MultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texunit"></param>
@@ -91138,10 +91138,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[] pixels)
+            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -91157,10 +91157,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,] pixels)
+            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -91176,10 +91176,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,,] pixels)
+            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -91195,453 +91195,453 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
-            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T11 pixels)
+            public static void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T11 pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(Int32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(Int32 buffer, Int32 size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(Int32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(Int32 buffer, Int32 size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(Int32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(Int32 buffer, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(Int32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(Int32 buffer, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(UInt32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(UInt32 buffer, Int32 size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(UInt32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(UInt32 buffer, Int32 size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(UInt32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(UInt32 buffer, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData(UInt32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
+            public static void NamedBufferData(UInt32 buffer, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             /// <param name="usage"></param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
+            public static void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91670,7 +91670,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91680,7 +91680,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91690,7 +91690,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, Int32 size, IntPtr data, Int32 flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, Int32 flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91699,7 +91699,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91711,7 +91711,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91723,7 +91723,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91734,7 +91734,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91746,7 +91746,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91758,7 +91758,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91769,7 +91769,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91781,7 +91781,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91793,7 +91793,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91804,7 +91804,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91816,7 +91816,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91828,7 +91828,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91839,7 +91839,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91849,7 +91849,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91859,7 +91859,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(Int32 buffer, IntPtr size, IntPtr data, Int32 flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(Int32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, Int32 flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -91868,7 +91868,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91880,7 +91880,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91892,7 +91892,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91903,7 +91903,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91915,7 +91915,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91927,7 +91927,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91938,7 +91938,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91950,7 +91950,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91962,7 +91962,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91973,7 +91973,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91985,7 +91985,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -91997,7 +91997,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, Int32 flags)
+            public static void NamedBufferStorage<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, Int32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92008,7 +92008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92018,7 +92018,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92028,7 +92028,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, Int32 size, IntPtr data, UInt32 flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, UInt32 flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92037,7 +92037,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92049,7 +92049,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92061,7 +92061,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92072,7 +92072,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92084,7 +92084,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92096,7 +92096,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92107,7 +92107,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92119,7 +92119,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92131,7 +92131,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] T2[,,] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92142,7 +92142,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92154,7 +92154,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92166,7 +92166,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute] ref T2 data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92177,7 +92177,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92187,7 +92187,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92197,7 +92197,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, IntPtr data, UInt32 flags) { throw new NotImplementedException(); }
+            public static void NamedBufferStorage(UInt32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, UInt32 flags) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
@@ -92206,7 +92206,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92218,7 +92218,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92230,7 +92230,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92241,7 +92241,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92253,7 +92253,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92265,7 +92265,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92276,7 +92276,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92288,7 +92288,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92300,7 +92300,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92311,7 +92311,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="flags"></param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.BufferStorageFlags flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92323,7 +92323,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92335,7 +92335,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferStorageEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, UInt32 flags)
+            public static void NamedBufferStorage<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, UInt32 flags)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -92343,19 +92343,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData(Int32 buffer, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+            public static void NamedBufferSubData(Int32 buffer, IntPtr offset, Int32 size, [CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92363,10 +92363,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92374,10 +92374,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92385,10 +92385,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92396,19 +92396,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+            public static void NamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92416,10 +92416,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92427,10 +92427,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92438,10 +92438,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92449,19 +92449,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData(UInt32 buffer, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+            public static void NamedBufferSubData(UInt32 buffer, IntPtr offset, Int32 size, [CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92469,10 +92469,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92480,10 +92480,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92491,10 +92491,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92502,19 +92502,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+            public static void NamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92522,10 +92522,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92533,10 +92533,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] T3[,,] data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92544,10 +92544,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer"></param>
             /// <param name="offset"></param>
             /// <param name="size"></param>
-            /// <param name="data">[length: size]</param>
+            /// <param name="data">[length: COMPSIZE(size)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
             [CLSCompliant(false)]
-            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+            public static void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Computed = "size")] ref T3 data)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -92812,7 +92812,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92821,7 +92821,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92830,7 +92830,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92839,7 +92839,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Double[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92848,7 +92848,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, ref Double @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92857,7 +92857,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92890,7 +92890,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92899,7 +92899,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92908,7 +92908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92917,7 +92917,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Single[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92926,7 +92926,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, ref Single @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92935,7 +92935,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92968,7 +92968,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92977,7 +92977,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92986,7 +92986,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -92995,7 +92995,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93004,7 +93004,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93013,7 +93013,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93034,7 +93034,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93043,7 +93043,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93052,7 +93052,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93062,7 +93062,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93072,7 +93072,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93082,7 +93082,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93092,7 +93092,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93102,7 +93102,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93112,7 +93112,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93122,7 +93122,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93132,7 +93132,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93142,7 +93142,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93152,7 +93152,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93162,7 +93162,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93172,7 +93172,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93182,7 +93182,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93192,7 +93192,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93202,7 +93202,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93212,7 +93212,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, IntPtr @string) { throw new NotImplementedException(); }
+            public static void NamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93222,7 +93222,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[] @string)
+            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93234,7 +93234,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[,] @string)
+            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[,] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93246,7 +93246,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[,,] @string)
+            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[,,] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93258,7 +93258,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] ref T4 @string)
+            public static void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] ref T4 @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93270,7 +93270,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, IntPtr @string) { throw new NotImplementedException(); }
+            public static void NamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -93280,7 +93280,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[] @string)
+            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93292,7 +93292,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[,] @string)
+            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[,] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93304,7 +93304,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] T4[,,] @string)
+            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T4[,,] @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93316,7 +93316,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
             [CLSCompliant(false)]
-            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] ref T4 @string)
+            public static void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] ref T4 @string)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -93476,11 +93476,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glNormalPointerEXT")]
-            public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [CountAttribute(Computed = "type,stride,count")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of normals
@@ -93494,12 +93494,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glNormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[] pointer)
+            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -93515,12 +93515,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glNormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -93536,12 +93536,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glNormalPointerEXT")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -93557,11 +93557,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glNormalPointerEXT")]
-            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride,count")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -93578,7 +93578,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glPixelTransformParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_pixel_transform]</summary>
             /// <param name="target"></param>
@@ -93593,7 +93593,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "EXT_pixel_transform", Version = "", EntryPoint = "glPixelTransformParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_point_parameters]
             /// Specify point parameters
@@ -93613,12 +93613,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "EXT_point_parameters", Version = "", EntryPoint = "glPointParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_point_parameters]
             /// Specify point parameters
@@ -93626,12 +93626,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "EXT_point_parameters", Version = "", EntryPoint = "glPointParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_polygon_offset]
             /// Set the scale and units used to calculate depth values
@@ -93663,7 +93663,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static void PrioritizeTextures(Int32 n, Int32[] textures, Single[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [CountAttribute(Parameter = "n")] Single[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Set texture residence priority
@@ -93679,7 +93679,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static void PrioritizeTextures(Int32 n, ref Int32 textures, ref Single priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [CountAttribute(Parameter = "n")] ref Single priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Set texture residence priority
@@ -93695,7 +93695,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTextures(Int32 n, Int32* textures, Single* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [CountAttribute(Parameter = "n")] Single* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Set texture residence priority
@@ -93711,7 +93711,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static void PrioritizeTextures(Int32 n, UInt32[] textures, Single[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [CountAttribute(Parameter = "n")] Single[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Set texture residence priority
@@ -93727,7 +93727,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static void PrioritizeTextures(Int32 n, ref UInt32 textures, ref Single priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [CountAttribute(Parameter = "n")] ref Single priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_object]
             /// Set texture residence priority
@@ -93743,7 +93743,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_texture_object", Version = "", EntryPoint = "glPrioritizeTexturesEXT")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTextures(Int32 n, UInt32* textures, Single* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Single* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93752,7 +93752,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93761,7 +93761,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93770,7 +93770,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93779,7 +93779,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93788,7 +93788,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93797,7 +93797,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramEnvParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93806,7 +93806,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93815,7 +93815,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93824,7 +93824,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93833,7 +93833,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93842,7 +93842,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_program_parameters]</summary>
             /// <param name="target"></param>
@@ -93851,7 +93851,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "", EntryPoint = "glProgramLocalParameters4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_geometry_shader4|EXT_separate_shader_objects]
             /// Specify a parameter for a program object
@@ -93934,7 +93934,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -93953,7 +93953,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -93972,7 +93972,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -93991,7 +93991,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94010,7 +94010,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94029,7 +94029,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform1dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94080,7 +94080,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94099,7 +94099,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94118,7 +94118,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94137,7 +94137,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94156,7 +94156,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94175,7 +94175,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94226,7 +94226,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94245,7 +94245,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94264,7 +94264,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94283,7 +94283,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94302,7 +94302,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94321,7 +94321,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94356,7 +94356,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94375,7 +94375,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94394,7 +94394,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94451,7 +94451,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94470,7 +94470,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94489,7 +94489,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94508,7 +94508,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94527,7 +94527,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94546,7 +94546,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94603,7 +94603,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94622,7 +94622,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94641,7 +94641,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94660,7 +94660,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94679,7 +94679,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94698,7 +94698,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94755,7 +94755,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94774,7 +94774,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94793,7 +94793,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94812,7 +94812,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94850,7 +94850,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94869,7 +94869,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -94888,7 +94888,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94951,7 +94951,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94970,7 +94970,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -94989,7 +94989,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95008,7 +95008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95027,7 +95027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95046,7 +95046,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95109,7 +95109,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95128,7 +95128,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95147,7 +95147,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95166,7 +95166,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95185,7 +95185,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95204,7 +95204,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95267,7 +95267,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95286,7 +95286,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95305,7 +95305,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95324,7 +95324,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95343,7 +95343,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95362,7 +95362,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95403,7 +95403,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95422,7 +95422,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95441,7 +95441,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95510,7 +95510,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95529,7 +95529,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95548,7 +95548,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95567,7 +95567,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95586,7 +95586,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]
             /// Specify the value of a uniform variable for a specified program object
@@ -95605,7 +95605,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniform4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95674,7 +95674,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95693,7 +95693,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95712,7 +95712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95731,7 +95731,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95750,7 +95750,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95769,7 +95769,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95838,7 +95838,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95857,7 +95857,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95876,7 +95876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95895,7 +95895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95914,7 +95914,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95933,7 +95933,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95977,7 +95977,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -95996,7 +95996,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]
             /// Specify the value of a uniform variable for a specified program object
@@ -96015,7 +96015,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96025,7 +96025,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96035,7 +96035,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96045,7 +96045,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96055,7 +96055,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96065,7 +96065,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96075,7 +96075,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96085,7 +96085,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96095,7 +96095,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96105,7 +96105,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96115,7 +96115,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96125,7 +96125,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96135,7 +96135,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*4]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96145,7 +96145,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96155,7 +96155,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96165,7 +96165,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96175,7 +96175,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96185,7 +96185,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96195,7 +96195,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96205,7 +96205,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96215,7 +96215,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96225,7 +96225,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96235,7 +96235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96245,7 +96245,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96255,7 +96255,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96265,7 +96265,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96275,7 +96275,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96285,7 +96285,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96295,7 +96295,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96305,7 +96305,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96315,7 +96315,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96325,7 +96325,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96335,7 +96335,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96345,7 +96345,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96355,7 +96355,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96365,7 +96365,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96375,7 +96375,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix2x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96385,7 +96385,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96395,7 +96395,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96405,7 +96405,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96415,7 +96415,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96425,7 +96425,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96435,7 +96435,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96445,7 +96445,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96455,7 +96455,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96465,7 +96465,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96475,7 +96475,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96485,7 +96485,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96495,7 +96495,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*9]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96505,7 +96505,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96515,7 +96515,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96525,7 +96525,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96535,7 +96535,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96545,7 +96545,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96555,7 +96555,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96565,7 +96565,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96575,7 +96575,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96585,7 +96585,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96595,7 +96595,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96605,7 +96605,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96615,7 +96615,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*6]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96625,7 +96625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96635,7 +96635,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96645,7 +96645,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96655,7 +96655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96665,7 +96665,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96675,7 +96675,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96685,7 +96685,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96695,7 +96695,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96705,7 +96705,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96715,7 +96715,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96725,7 +96725,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96735,7 +96735,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix3x4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96745,7 +96745,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96755,7 +96755,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96765,7 +96765,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96775,7 +96775,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96785,7 +96785,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96795,7 +96795,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96805,7 +96805,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96815,7 +96815,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96825,7 +96825,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96835,7 +96835,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96845,7 +96845,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96855,7 +96855,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*16]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96865,7 +96865,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96875,7 +96875,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96885,7 +96885,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96895,7 +96895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96905,7 +96905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96915,7 +96915,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96925,7 +96925,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96935,7 +96935,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96945,7 +96945,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96955,7 +96955,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96965,7 +96965,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -96975,7 +96975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*8]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x2fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96985,7 +96985,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -96995,7 +96995,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -97005,7 +97005,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -97015,7 +97015,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -97025,7 +97025,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="program"></param>
@@ -97035,7 +97035,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97045,7 +97045,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97055,7 +97055,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97065,7 +97065,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97075,7 +97075,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97085,7 +97085,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+            public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access|EXT_separate_shader_objects]</summary>
             /// <param name="program"></param>
@@ -97095,7 +97095,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count*12]</param>
             [AutoGenerated(Category = "EXT_direct_state_access|EXT_separate_shader_objects", Version = "", EntryPoint = "glProgramUniformMatrix4x3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_provoking_vertex]
             /// Specifiy the vertex to be used as the source of data for flat shaded varyings
@@ -97251,7 +97251,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3bvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(SByte[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97261,7 +97261,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3bvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref SByte v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97271,7 +97271,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97296,7 +97296,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3dvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(Double[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97306,7 +97306,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3dvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref Double v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97316,7 +97316,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97341,7 +97341,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3fvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(Single[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97351,7 +97351,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3fvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref Single v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97361,7 +97361,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97386,7 +97386,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ivEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(Int32[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97396,7 +97396,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ivEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref Int32 v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97406,7 +97406,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97431,7 +97431,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3svEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(Int16[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97441,7 +97441,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3svEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref Int16 v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97451,7 +97451,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3svEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97476,7 +97476,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ubvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(Byte[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97486,7 +97486,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ubvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref Byte v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97496,7 +97496,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3ubvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97522,7 +97522,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3uivEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(UInt32[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97532,7 +97532,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3uivEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref UInt32 v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97542,7 +97542,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97568,7 +97568,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3usvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(UInt16[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] UInt16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97578,7 +97578,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3usvEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3(ref UInt16 v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3([CountAttribute(Count = 3)] ref UInt16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Set the current secondary color
@@ -97588,7 +97588,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColor3usvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3(UInt16* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3([CountAttribute(Count = 3)] UInt16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Define an array of secondary colors
@@ -97602,11 +97602,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColorPointerEXT")]
-            public static void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_secondary_color]
             /// Define an array of secondary colors
@@ -97620,12 +97620,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -97641,12 +97641,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -97662,12 +97662,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColorPointerEXT")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -97683,11 +97683,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_secondary_color", Version = "", EntryPoint = "glSecondaryColorPointerEXT")]
-            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -97712,14 +97712,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type,width]
+            /// <param name="row">[length: COMPSIZE(target,format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
             /// </param>
-            /// <param name="column">[length: target,format,type,height]
+            /// <param name="column">[length: COMPSIZE(target,format,type,height)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glSeparableFilter2DEXT")]
-            public static void SeparableFilter2D(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr row, IntPtr column) { throw new NotImplementedException(); }
+            public static void SeparableFilter2D(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_convolution]
             /// Define a separable two-dimensional convolution filter
@@ -97742,15 +97742,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type,width]
+            /// <param name="row">[length: COMPSIZE(target,format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
             /// </param>
-            /// <param name="column">[length: target,format,type,height]
+            /// <param name="column">[length: COMPSIZE(target,format,type,height)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glSeparableFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] row, [InAttribute, OutAttribute] T7[] column)
+            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[] column)
                 where T6 : struct
                 where T7 : struct
              { throw new NotImplementedException(); }
@@ -97776,15 +97776,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type,width]
+            /// <param name="row">[length: COMPSIZE(target,format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
             /// </param>
-            /// <param name="column">[length: target,format,type,height]
+            /// <param name="column">[length: COMPSIZE(target,format,type,height)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glSeparableFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] row, [InAttribute, OutAttribute] T7[,] column)
+            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,] column)
                 where T6 : struct
                 where T7 : struct
              { throw new NotImplementedException(); }
@@ -97810,15 +97810,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type,width]
+            /// <param name="row">[length: COMPSIZE(target,format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
             /// </param>
-            /// <param name="column">[length: target,format,type,height]
+            /// <param name="column">[length: COMPSIZE(target,format,type,height)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glSeparableFilter2DEXT")]
             [CLSCompliant(false)]
-            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] row, [InAttribute, OutAttribute] T7[,,] column)
+            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,,] column)
                 where T6 : struct
                 where T7 : struct
              { throw new NotImplementedException(); }
@@ -97844,14 +97844,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="row">[length: target,format,type,width]
+            /// <param name="row">[length: COMPSIZE(target,format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
             /// </param>
-            /// <param name="column">[length: target,format,type,height]
+            /// <param name="column">[length: COMPSIZE(target,format,type,height)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
             /// </param>
             [AutoGenerated(Category = "EXT_convolution", Version = "", EntryPoint = "glSeparableFilter2DEXT")]
-            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 row, [InAttribute, OutAttribute] ref T7 column)
+            public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTargetExt target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] ref T6 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] ref T7 column)
                 where T6 : struct
                 where T7 : struct
              { throw new NotImplementedException(); }
@@ -97859,192 +97859,192 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr) { throw new NotImplementedException(); }
+            public static void SetInvariant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [CountAttribute(Computed = "id,type")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[] addr)
+            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,] addr)
+            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,,] addr)
+            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] ref T2 addr)
+            public static void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] ref T2 addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr) { throw new NotImplementedException(); }
+            public static void SetInvariant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [CountAttribute(Computed = "id,type")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[] addr)
+            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,] addr)
+            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,,] addr)
+            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetInvariantEXT")]
             [CLSCompliant(false)]
-            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] ref T2 addr)
+            public static void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] ref T2 addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr) { throw new NotImplementedException(); }
+            public static void SetLocalConstant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [CountAttribute(Computed = "id,type")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[] addr)
+            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,] addr)
+            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,,] addr)
+            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] ref T2 addr)
+            public static void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] ref T2 addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr) { throw new NotImplementedException(); }
+            public static void SetLocalConstant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [CountAttribute(Computed = "id,type")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[] addr)
+            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,] addr)
+            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] T2[,,] addr)
+            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] T2[,,] addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
-            /// <param name="addr">[length: id,type]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glSetLocalConstantEXT")]
             [CLSCompliant(false)]
-            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] ref T2 addr)
+            public static void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type")] ref T2 addr)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -98158,37 +98158,37 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(Byte[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref Byte v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(SByte[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref SByte v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="tx"></param>
@@ -98201,19 +98201,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3dvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(Double[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3dvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref Double v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="tx"></param>
@@ -98226,19 +98226,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3fvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(Single[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3fvEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref Single v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3fvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="tx"></param>
@@ -98251,19 +98251,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3ivEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(Int32[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3ivEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref Int32 v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="tx"></param>
@@ -98276,63 +98276,63 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3svEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(Int16[] v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3svEXT")]
             [CLSCompliant(false)]
-            public static void Tangent3(ref Int16 v) { throw new NotImplementedException(); }
+            public static void Tangent3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangent3svEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Tangent3(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void Tangent3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangentPointerEXT")]
-            public static void TangentPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void TangentPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangentPointerEXT")]
             [CLSCompliant(false)]
-            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangentPointerEXT")]
             [CLSCompliant(false)]
-            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangentPointerEXT")]
             [CLSCompliant(false)]
-            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_coordinate_frame]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_coordinate_frame", Version = "", EntryPoint = "glTangentPointerEXT")]
-            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -98383,11 +98383,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glTexCoordPointerEXT")]
-            public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of texture coordinates
@@ -98404,12 +98404,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[] pointer)
+            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -98428,12 +98428,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -98452,12 +98452,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glTexCoordPointerEXT")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -98476,11 +98476,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glTexCoordPointerEXT")]
-            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -98514,11 +98514,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexImage3DEXT")]
-            public static void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture3D]
             /// Specify a three-dimensional texture image
@@ -98550,12 +98550,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -98589,12 +98589,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -98628,12 +98628,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -98667,61 +98667,61 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexImage3DEXT")]
-            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture_integer]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_texture_integer", Version = "", EntryPoint = "glTexParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_subtexture]
             /// Specify a one-dimensional texture subimage
@@ -98744,11 +98744,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage1DEXT")]
-            public static void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_subtexture]
             /// Specify a one-dimensional texture subimage
@@ -98771,12 +98771,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[] pixels)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -98801,12 +98801,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,] pixels)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -98831,12 +98831,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,,] pixels)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -98861,11 +98861,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage1DEXT")]
-            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+            public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T6 pixels)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -98896,11 +98896,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage2DEXT")]
-            public static void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_subtexture]
             /// Specify a two-dimensional texture subimage
@@ -98929,12 +98929,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -98965,12 +98965,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99001,12 +99001,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99037,11 +99037,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_subtexture", Version = "", EntryPoint = "glTexSubImage2DEXT")]
-            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99078,11 +99078,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexSubImage3DEXT")]
-            public static void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_texture3D]
             /// Specify a three-dimensional texture subimage
@@ -99117,12 +99117,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -99159,12 +99159,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -99201,12 +99201,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -99243,11 +99243,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="pixels">[length: format,type,width,height,depth]
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
             /// Specifies a pointer to the image data in memory.
             /// </param>
             [AutoGenerated(Category = "EXT_texture3D", Version = "", EntryPoint = "glTexSubImage3DEXT")]
-            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -99390,11 +99390,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99405,11 +99405,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99422,11 +99422,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99439,11 +99439,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99456,11 +99456,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99473,10 +99473,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99487,10 +99487,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99503,10 +99503,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99519,10 +99519,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99535,10 +99535,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99551,11 +99551,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99566,11 +99566,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99583,11 +99583,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99600,11 +99600,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99617,11 +99617,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99634,10 +99634,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99648,10 +99648,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99664,10 +99664,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99680,10 +99680,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T8[,,] pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99696,10 +99696,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+            public static void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T8 pixels)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -99713,11 +99713,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99729,11 +99729,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99747,11 +99747,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99765,11 +99765,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99783,11 +99783,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99801,10 +99801,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99816,10 +99816,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99833,10 +99833,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99850,10 +99850,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99867,10 +99867,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99884,11 +99884,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99900,11 +99900,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99918,11 +99918,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99936,11 +99936,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99954,11 +99954,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -99972,10 +99972,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -99987,10 +99987,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -100004,10 +100004,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -100021,10 +100021,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -100038,10 +100038,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -100056,11 +100056,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100073,11 +100073,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100092,11 +100092,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100111,11 +100111,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100130,11 +100130,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100149,10 +100149,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100165,10 +100165,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100183,10 +100183,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100201,10 +100201,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100219,10 +100219,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100237,11 +100237,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100254,11 +100254,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100273,11 +100273,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100292,11 +100292,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100311,11 +100311,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100330,10 +100330,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100346,10 +100346,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100364,10 +100364,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100382,10 +100382,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100400,10 +100400,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -100473,37 +100473,37 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100527,118 +100527,118 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100906,10 +100906,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100919,10 +100919,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
+            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -100934,10 +100934,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
+            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -100949,10 +100949,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
+            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -100964,10 +100964,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T7 pixels)
+            public static void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T7 pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -100979,10 +100979,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -100992,10 +100992,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
+            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -101007,10 +101007,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
+            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -101022,10 +101022,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
+            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,,] pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -101037,10 +101037,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="width"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T7 pixels)
+            public static void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T7 pixels)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -101054,10 +101054,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -101069,10 +101069,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101086,10 +101086,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101103,10 +101103,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101120,10 +101120,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101137,10 +101137,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -101152,10 +101152,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101169,10 +101169,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101186,10 +101186,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T9[,,] pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101203,10 +101203,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="height"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+            public static void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T9 pixels)
                 where T9 : struct
              { throw new NotImplementedException(); }
 
@@ -101222,10 +101222,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -101239,10 +101239,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[] pixels)
+            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101258,10 +101258,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,] pixels)
+            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101277,10 +101277,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,,] pixels)
+            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101296,10 +101296,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T11 pixels)
+            public static void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T11 pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101315,10 +101315,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="texture"></param>
@@ -101332,10 +101332,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[] pixels)
+            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101351,10 +101351,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,] pixels)
+            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101370,10 +101370,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,,] pixels)
+            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T11[,,] pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101389,10 +101389,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="depth"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]</param>
             [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
             [CLSCompliant(false)]
-            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T11 pixels)
+            public static void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T11 pixels)
                 where T11 : struct
              { throw new NotImplementedException(); }
 
@@ -101413,7 +101413,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsEXT")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -101432,7 +101432,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsEXT")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101474,7 +101474,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101490,7 +101490,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101506,7 +101506,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101522,7 +101522,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101538,7 +101538,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101554,7 +101554,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101602,7 +101602,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101618,7 +101618,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101634,7 +101634,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101650,7 +101650,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101666,7 +101666,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101720,7 +101720,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101736,7 +101736,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101752,7 +101752,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101768,7 +101768,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101784,7 +101784,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101800,7 +101800,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101860,7 +101860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101876,7 +101876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101892,7 +101892,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101908,7 +101908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101924,7 +101924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_gpu_shader4]
             /// Specify the value of a uniform variable for the current program object
@@ -101940,7 +101940,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "EXT_gpu_shader4", Version = "", EntryPoint = "glUniform4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_bindable_uniform]</summary>
             /// <param name="program"></param>
@@ -102042,168 +102042,168 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantbvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, SByte[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] SByte[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantbvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref SByte addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref SByte addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantbvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, SByte* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] SByte* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, Double[] addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] Double[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, ref Double addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] ref Double addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(Int32 id, Double* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(Int32 id, [CountAttribute(Computed = "id")] Double* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, Double[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] Double[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref Double addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref Double addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantdvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, Double* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] Double* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, Single[] addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] Single[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, ref Single addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] ref Single addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(Int32 id, Single* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(Int32 id, [CountAttribute(Computed = "id")] Single* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, Single[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] Single[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref Single addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref Single addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, Single* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] Single* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, Int32[] addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] Int32[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, ref Int32 addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] ref Int32 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(Int32 id, Int32* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(Int32 id, [CountAttribute(Computed = "id")] Int32* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, Int32[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] Int32[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref Int32 addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref Int32 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, Int32* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] Int32* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, IntPtr addr) { throw new NotImplementedException(); }
+            public static void VariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [CountAttribute(Computed = "id,type,stride")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] T3[] addr)
+            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102211,10 +102211,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] T3[,] addr)
+            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[,] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102222,10 +102222,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] T3[,,] addr)
+            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[,,] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102233,10 +102233,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] ref T3 addr)
+            public static void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] ref T3 addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102244,19 +102244,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, IntPtr addr) { throw new NotImplementedException(); }
+            public static void VariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [CountAttribute(Computed = "id,type,stride")] IntPtr addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] T3[] addr)
+            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102264,10 +102264,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] T3[,] addr)
+            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[,] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102275,10 +102275,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] T3[,,] addr)
+            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] T3[,,] addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -102286,138 +102286,138 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="id"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="addr">[length: id,type,stride]</param>
+            /// <param name="addr">[length: COMPSIZE(id,type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantPointerEXT")]
             [CLSCompliant(false)]
-            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] ref T3 addr)
+            public static void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "id,type,stride")] ref T3 addr)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, Int16[] addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] Int16[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, ref Int16 addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] ref Int16 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(Int32 id, Int16* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(Int32 id, [CountAttribute(Computed = "id")] Int16* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, Int16[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] Int16[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref Int16 addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref Int16 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantsvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, Int16* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] Int16* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, Byte[] addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] Byte[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(Int32 id, ref Byte addr) { throw new NotImplementedException(); }
+            public static void Variant(Int32 id, [CountAttribute(Computed = "id")] ref Byte addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(Int32 id, Byte* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(Int32 id, [CountAttribute(Computed = "id")] Byte* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, Byte[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] Byte[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref Byte addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref Byte addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantubvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, Byte* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] Byte* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantuivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, UInt32[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] UInt32[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantuivEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref UInt32 addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref UInt32 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantuivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, UInt32* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] UInt32* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantusvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, UInt16[] addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] UInt16[] addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantusvEXT")]
             [CLSCompliant(false)]
-            public static void Variant(UInt32 id, ref UInt16 addr) { throw new NotImplementedException(); }
+            public static void Variant(UInt32 id, [CountAttribute(Computed = "id")] ref UInt16 addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_shader]</summary>
             /// <param name="id"></param>
-            /// <param name="addr">[length: id]</param>
+            /// <param name="addr">[length: COMPSIZE(id)]</param>
             [AutoGenerated(Category = "EXT_vertex_shader", Version = "", EntryPoint = "glVariantusvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void Variant(UInt32 id, UInt16* addr) { throw new NotImplementedException(); }
+            public static unsafe void Variant(UInt32 id, [CountAttribute(Computed = "id")] UInt16* addr) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_direct_state_access]</summary>
             /// <param name="vaobj"></param>
@@ -102858,14 +102858,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI1(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI1(Int32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI1ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI1(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -102879,7 +102879,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI1uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI1(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -102902,42 +102902,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI2(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI2(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -102952,21 +102952,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI2(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI2uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI2(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -102991,42 +102991,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI3(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI3(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -103042,42 +103042,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI3(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI3uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI3(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4bvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -103104,126 +103104,126 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4svEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4ubvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
@@ -103240,62 +103240,62 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4uivEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribI4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribI4usvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribI4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103304,10 +103304,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103316,10 +103316,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103328,10 +103328,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103340,20 +103340,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program4]</summary>
             /// <param name="index"></param>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103362,10 +103362,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103374,10 +103374,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103386,10 +103386,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103412,14 +103412,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL1dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL1(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL1dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103442,42 +103442,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL2(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL2dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103502,42 +103502,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL3(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL3dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103564,42 +103564,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL4(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribL4dvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103609,7 +103609,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103619,7 +103619,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103631,7 +103631,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103643,7 +103643,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103655,7 +103655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103667,7 +103667,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
             /// <param name="index"></param>
@@ -103677,7 +103677,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103689,7 +103689,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103701,7 +103701,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103713,7 +103713,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: size]</param>
             [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "", EntryPoint = "glVertexAttribLPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103732,11 +103732,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glVertexPointerEXT")]
-            public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_array]
             /// Define an array of vertex data
@@ -103753,12 +103753,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glVertexPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103777,12 +103777,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glVertexPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103801,12 +103801,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glVertexPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103825,11 +103825,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="count">
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: size,type,stride,count]
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride,count)]
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "EXT_vertex_array", Version = "", EntryPoint = "glVertexPointerEXT")]
-            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride,count")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -103842,24 +103842,24 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weight">[length: 1]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightfvEXT")]
             [CLSCompliant(false)]
-            public static unsafe void VertexWeight(Single* weight) { throw new NotImplementedException(); }
+            public static unsafe void VertexWeight([CountAttribute(Count = 1)] Single* weight) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_weighting]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightPointerEXT")]
-            public static void VertexWeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexWeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: EXT_vertex_weighting]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer)
+            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -103867,10 +103867,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer)
+            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -103878,10 +103878,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightPointerEXT")]
             [CLSCompliant(false)]
-            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer)
+            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T3[,,] pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -103889,9 +103889,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "EXT_vertex_weighting", Version = "", EntryPoint = "glVertexWeightPointerEXT")]
-            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer)
+            public static void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T3 pointer)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -103929,14 +103929,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="len"></param>
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "GREMEDY_string_marker", Version = "", EntryPoint = "glStringMarkerGREMEDY")]
-            public static void StringMarker(Int32 len, IntPtr @string) { throw new NotImplementedException(); }
+            public static void StringMarker(Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: GREMEDY_string_marker]</summary>
             /// <param name="len"></param>
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "GREMEDY_string_marker", Version = "", EntryPoint = "glStringMarkerGREMEDY")]
             [CLSCompliant(false)]
-            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] T1[] @string)
+            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T1[] @string)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -103945,7 +103945,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "GREMEDY_string_marker", Version = "", EntryPoint = "glStringMarkerGREMEDY")]
             [CLSCompliant(false)]
-            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] T1[,] @string)
+            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T1[,] @string)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -103954,7 +103954,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "GREMEDY_string_marker", Version = "", EntryPoint = "glStringMarkerGREMEDY")]
             [CLSCompliant(false)]
-            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] T1[,,] @string)
+            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] T1[,,] @string)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -103962,7 +103962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="len"></param>
             /// <param name="@string">[length: len]</param>
             [AutoGenerated(Category = "GREMEDY_string_marker", Version = "", EntryPoint = "glStringMarkerGREMEDY")]
-            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] ref T1 @string)
+            public static void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute, CountAttribute(Parameter = "len")] ref T1 @string)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -103973,50 +103973,50 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterfvHP")]
             [CLSCompliant(false)]
-            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterfvHP")]
             [CLSCompliant(false)]
-            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterfvHP")]
             [CLSCompliant(false)]
-            public static unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterivHP")]
             [CLSCompliant(false)]
-            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterivHP")]
             [CLSCompliant(false)]
-            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glGetImageTransformParameterivHP")]
             [CLSCompliant(false)]
-            public static unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
@@ -104028,18 +104028,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glImageTransformParameterfvHP")]
             [CLSCompliant(false)]
-            public static void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glImageTransformParameterfvHP")]
             [CLSCompliant(false)]
-            public static unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
@@ -104051,18 +104051,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glImageTransformParameterivHP")]
             [CLSCompliant(false)]
-            public static void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: HP_image_transform]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "HP_image_transform", Version = "", EntryPoint = "glImageTransformParameterivHP")]
             [CLSCompliant(false)]
-            public static unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         }
 
@@ -104072,20 +104072,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glColorPointerListIBM")]
-            public static void ColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void ColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer, Int32 ptrstride)
+            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104093,11 +104093,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer, Int32 ptrstride)
+            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104105,11 +104105,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer, Int32 ptrstride)
+            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104117,36 +104117,36 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glColorPointerListIBM")]
-            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer, Int32 ptrstride)
+            public static void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glEdgeFlagPointerListIBM")]
             [CLSCompliant(false)]
-            public static unsafe void EdgeFlagPointerList(Int32 stride, bool*[] pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static unsafe void EdgeFlagPointerList(Int32 stride, [CountAttribute(Computed = "stride")] bool*[] pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glEdgeFlagPointerListIBM")]
             [CLSCompliant(false)]
-            public static unsafe void EdgeFlagPointerList(Int32 stride, ref bool* pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static unsafe void EdgeFlagPointerList(Int32 stride, [CountAttribute(Computed = "stride")] ref bool* pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glEdgeFlagPointerListIBM")]
             [CLSCompliant(false)]
-            public static unsafe void EdgeFlagPointerList(Int32 stride, bool** pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static unsafe void EdgeFlagPointerList(Int32 stride, [CountAttribute(Computed = "stride")] bool** pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_static_data]</summary>
             /// <param name="target"></param>
@@ -104156,428 +104156,428 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
-            public static void FogCoordPointerList(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void FogCoordPointerList(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [Obsolete("Use FogPointerType overload instead")]
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
-            public static void FogCoordPointerList(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void FogCoordPointerList(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [Obsolete("Use FogPointerType overload instead")]
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [Obsolete("Use FogPointerType overload instead")]
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [Obsolete("Use FogPointerType overload instead")]
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [Obsolete("Use FogPointerType overload instead")]
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glFogCoordPointerListIBM")]
-            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer, Int32 ptrstride)
+            public static void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glIndexPointerListIBM")]
-            public static void IndexPointerList(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void IndexPointerList(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glIndexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer, Int32 ptrstride)
+            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glIndexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer, Int32 ptrstride)
+            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glIndexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer, Int32 ptrstride)
+            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glIndexPointerListIBM")]
-            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer, Int32 ptrstride)
+            public static void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="first">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="first">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawArraysIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] first, Int32[] count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static void MultiModeDrawArrays([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] first, [CountAttribute(Computed = "primcount")] Int32[] count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="first">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="first">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawArraysIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawArrays(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static void MultiModeDrawArrays([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 first, [CountAttribute(Computed = "primcount")] ref Int32 count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="first">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="first">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawArraysIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* first, Int32* count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static unsafe void MultiModeDrawArrays([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static void MultiModeDrawElements([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType[] mode, [CountAttribute(Computed = "primcount")] Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static void MultiModeDrawElements([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount, Int32 modestride)
+            public static void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] ref OpenTK.Graphics.OpenGL.PrimitiveType mode, [CountAttribute(Computed = "primcount")] ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
+            public static unsafe void MultiModeDrawElements([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount, Int32 modestride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount, Int32 modestride)
+            public static unsafe void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount, Int32 modestride)
+            public static unsafe void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount, Int32 modestride)
+            public static unsafe void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] T3[,,] indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
-            /// <param name="mode">[length: primcount]</param>
-            /// <param name="count">[length: primcount]</param>
+            /// <param name="mode">[length: COMPSIZE(primcount)]</param>
+            /// <param name="count">[length: COMPSIZE(primcount)]</param>
             /// <param name="type"></param>
-            /// <param name="indices">[length: primcount]</param>
+            /// <param name="indices">[length: COMPSIZE(primcount)]</param>
             /// <param name="primcount"></param>
             /// <param name="modestride"></param>
             [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "", EntryPoint = "glMultiModeDrawElementsIBM")]
             [CLSCompliant(false)]
-            public static unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount, Int32 modestride)
+            public static unsafe void MultiModeDrawElements<T3>([CountAttribute(Computed = "primcount")] OpenTK.Graphics.OpenGL.PrimitiveType* mode, [CountAttribute(Computed = "primcount")] Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "primcount")] ref T3 indices, Int32 primcount, Int32 modestride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glNormalPointerListIBM")]
-            public static void NormalPointerList(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void NormalPointerList(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glNormalPointerListIBM")]
             [CLSCompliant(false)]
-            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer, Int32 ptrstride)
+            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glNormalPointerListIBM")]
             [CLSCompliant(false)]
-            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer, Int32 ptrstride)
+            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glNormalPointerListIBM")]
             [CLSCompliant(false)]
-            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer, Int32 ptrstride)
+            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glNormalPointerListIBM")]
-            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer, Int32 ptrstride)
+            public static void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer, Int32 ptrstride)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -104585,20 +104585,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glSecondaryColorPointerListIBM")]
-            public static void SecondaryColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void SecondaryColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glSecondaryColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer, Int32 ptrstride)
+            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104606,11 +104606,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glSecondaryColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer, Int32 ptrstride)
+            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104618,11 +104618,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glSecondaryColorPointerListIBM")]
             [CLSCompliant(false)]
-            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer, Int32 ptrstride)
+            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104630,10 +104630,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glSecondaryColorPointerListIBM")]
-            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer, Int32 ptrstride)
+            public static void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104641,20 +104641,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glTexCoordPointerListIBM")]
-            public static void TexCoordPointerList(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void TexCoordPointerList(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glTexCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer, Int32 ptrstride)
+            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104662,11 +104662,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glTexCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer, Int32 ptrstride)
+            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104674,11 +104674,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glTexCoordPointerListIBM")]
             [CLSCompliant(false)]
-            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer, Int32 ptrstride)
+            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104686,10 +104686,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glTexCoordPointerListIBM")]
-            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer, Int32 ptrstride)
+            public static void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104697,20 +104697,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glVertexPointerListIBM")]
-            public static void VertexPointerList(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
+            public static void VertexPointerList(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride) { throw new NotImplementedException(); }
 
             /// <summary>[requires: IBM_vertex_array_lists]</summary>
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glVertexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[] pointer, Int32 ptrstride)
+            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104718,11 +104718,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glVertexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,] pointer, Int32 ptrstride)
+            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104730,11 +104730,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glVertexPointerListIBM")]
             [CLSCompliant(false)]
-            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] T3[,,] pointer, Int32 ptrstride)
+            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T3[,,] pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104742,10 +104742,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size"></param>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: size,type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
             /// <param name="ptrstride"></param>
             [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "", EntryPoint = "glVertexPointerListIBM")]
-            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] ref T3 pointer, Int32 ptrstride)
+            public static void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T3 pointer, Int32 ptrstride)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -104819,7 +104819,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glColorPointervINTEL")]
-            public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [CountAttribute(Count = 4)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_parallel_arrays]
             /// Define an array of colors
@@ -104835,7 +104835,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glColorPointervINTEL")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[] pointer)
+            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -104853,7 +104853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glColorPointervINTEL")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -104871,7 +104871,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glColorPointervINTEL")]
             [CLSCompliant(false)]
-            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -104888,7 +104888,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first component of the first color element in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glColorPointervINTEL")]
-            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105625,7 +105625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="layout">[length: 1]</param>
             [AutoGenerated(Category = "INTEL_map_texture", Version = "", EntryPoint = "glMapTexture2DINTEL")]
             [CLSCompliant(false)]
-            public static IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, [OutAttribute] out Int32 stride, [OutAttribute] out OpenTK.Graphics.OpenGL.IntelMapTexture layout) { throw new NotImplementedException(); }
+            public static IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, [OutAttribute, CountAttribute(Count = 1)] out Int32 stride, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.IntelMapTexture layout) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_map_texture]</summary>
             /// <param name="texture"></param>
@@ -105635,7 +105635,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="layout">[length: 1]</param>
             [AutoGenerated(Category = "INTEL_map_texture", Version = "", EntryPoint = "glMapTexture2DINTEL")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, [OutAttribute] Int32* stride, [OutAttribute] OpenTK.Graphics.OpenGL.IntelMapTexture* layout) { throw new NotImplementedException(); }
+            public static unsafe IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, [OutAttribute, CountAttribute(Count = 1)] Int32* stride, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.IntelMapTexture* layout) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_map_texture]</summary>
             /// <param name="texture"></param>
@@ -105645,7 +105645,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="layout">[length: 1]</param>
             [AutoGenerated(Category = "INTEL_map_texture", Version = "", EntryPoint = "glMapTexture2DINTEL")]
             [CLSCompliant(false)]
-            public static IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, [OutAttribute] out Int32 stride, [OutAttribute] out OpenTK.Graphics.OpenGL.IntelMapTexture layout) { throw new NotImplementedException(); }
+            public static IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, [OutAttribute, CountAttribute(Count = 1)] out Int32 stride, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.IntelMapTexture layout) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_map_texture]</summary>
             /// <param name="texture"></param>
@@ -105655,7 +105655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="layout">[length: 1]</param>
             [AutoGenerated(Category = "INTEL_map_texture", Version = "", EntryPoint = "glMapTexture2DINTEL")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, [OutAttribute] Int32* stride, [OutAttribute] OpenTK.Graphics.OpenGL.IntelMapTexture* layout) { throw new NotImplementedException(); }
+            public static unsafe IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, [OutAttribute, CountAttribute(Count = 1)] Int32* stride, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.IntelMapTexture* layout) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_parallel_arrays]
             /// Define an array of normals
@@ -105667,7 +105667,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glNormalPointervINTEL")]
-            public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, [CountAttribute(Count = 4)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_parallel_arrays]
             /// Define an array of normals
@@ -105680,7 +105680,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glNormalPointervINTEL")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[] pointer)
+            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -105695,7 +105695,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glNormalPointervINTEL")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -105710,7 +105710,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glNormalPointervINTEL")]
             [CLSCompliant(false)]
-            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -105724,7 +105724,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first normal in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glNormalPointervINTEL")]
-            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -105753,7 +105753,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glTexCoordPointervINTEL")]
-            public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [CountAttribute(Count = 4)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_parallel_arrays]
             /// Define an array of texture coordinates
@@ -105769,7 +105769,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glTexCoordPointervINTEL")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[] pointer)
+            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105787,7 +105787,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glTexCoordPointervINTEL")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105805,7 +105805,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glTexCoordPointervINTEL")]
             [CLSCompliant(false)]
-            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105822,7 +105822,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first texture coordinate set in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glTexCoordPointervINTEL")]
-            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105853,7 +105853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glVertexPointervINTEL")]
-            public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [CountAttribute(Count = 4)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: INTEL_parallel_arrays]
             /// Define an array of vertex data
@@ -105869,7 +105869,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glVertexPointervINTEL")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[] pointer)
+            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105887,7 +105887,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glVertexPointervINTEL")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105905,7 +105905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glVertexPointervINTEL")]
             [CLSCompliant(false)]
-            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -105922,7 +105922,7 @@ namespace OpenTK.Graphics.OpenGL
             /// Specifies a pointer to the first coordinate of the first vertex in the array. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "INTEL_parallel_arrays", Version = "", EntryPoint = "glVertexPointervINTEL")]
-            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute, CountAttribute(Count = 4)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -106234,7 +106234,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -106265,7 +106265,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -106296,7 +106296,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -106327,7 +106327,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -106358,7 +106358,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -106389,7 +106389,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusKHR")]
@@ -106550,7 +106550,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -106572,7 +106572,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -106594,7 +106594,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -106616,7 +106616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -106638,7 +106638,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -106660,7 +106660,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.KhrDebug identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -106680,7 +106680,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -106700,7 +106700,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -106720,7 +106720,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -106740,7 +106740,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106762,7 +106762,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106784,7 +106784,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106806,7 +106806,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106828,7 +106828,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106850,7 +106850,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106872,7 +106872,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106894,7 +106894,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106916,7 +106916,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106938,7 +106938,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106960,7 +106960,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -106982,7 +106982,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -107205,7 +107205,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -107218,7 +107218,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -107233,7 +107233,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -107248,7 +107248,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -107262,7 +107262,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -107294,7 +107294,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Double[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107304,7 +107304,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Double v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107314,7 +107314,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2dvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107336,7 +107336,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Single[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107346,7 +107346,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Single v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107356,7 +107356,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2fvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107378,7 +107378,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Int32[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107388,7 +107388,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Int32 v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107398,7 +107398,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2ivMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107420,7 +107420,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(Int16[] v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107430,7 +107430,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos2(ref Int16 v) { throw new NotImplementedException(); }
+            public static void WindowPos2([CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107440,7 +107440,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos2svMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos2(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos2([CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107465,7 +107465,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Double[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107475,7 +107475,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Double v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107485,7 +107485,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3dvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107510,7 +107510,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Single[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107520,7 +107520,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Single v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107530,7 +107530,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3fvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107555,7 +107555,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Int32[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107565,7 +107565,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Int32 v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107575,7 +107575,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3ivMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107600,7 +107600,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(Int16[] v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107610,7 +107610,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos3(ref Int16 v) { throw new NotImplementedException(); }
+            public static void WindowPos3([CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107620,7 +107620,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos3svMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos3(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos3([CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107646,7 +107646,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(Double[] v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107656,7 +107656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4dvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(ref Double v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107666,7 +107666,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4dvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos4(Double* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos4([CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107692,7 +107692,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(Single[] v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107702,7 +107702,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4fvMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(ref Single v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107712,7 +107712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4fvMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos4(Single* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos4([CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107738,7 +107738,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(Int32[] v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107748,7 +107748,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4ivMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(ref Int32 v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107758,7 +107758,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4ivMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos4(Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos4([CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107784,7 +107784,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(Int16[] v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107794,7 +107794,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4svMESA")]
             [CLSCompliant(false)]
-            public static void WindowPos4(ref Int16 v) { throw new NotImplementedException(); }
+            public static void WindowPos4([CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: MESA_window_pos]
             /// Specify the raster position in window coordinates for pixel operations
@@ -107804,7 +107804,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "MESA_window_pos", Version = "", EntryPoint = "glWindowPos4svMESA")]
             [CLSCompliant(false)]
-            public static unsafe void WindowPos4(Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void WindowPos4([CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         }
 
@@ -107812,17 +107812,17 @@ namespace OpenTK.Graphics.OpenGL
         {
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
-            /// <param name="name">[length: name]</param>
+            /// <param name="name">[length: COMPSIZE(name)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static void ActiveVarying(Int32 program, String name) { throw new NotImplementedException(); }
+            public static void ActiveVarying(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
-            /// <param name="name">[length: name]</param>
+            /// <param name="name">[length: COMPSIZE(name)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static void ActiveVarying(UInt32 program, String name) { throw new NotImplementedException(); }
+            public static void ActiveVarying(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107830,7 +107830,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static bool AreProgramsResident(Int32 n, Int32[] programs, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+            public static bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] Int32[] programs, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107838,7 +107838,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static bool AreProgramsResident(Int32 n, ref Int32 programs, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+            public static bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 programs, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107846,7 +107846,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static unsafe bool AreProgramsResident(Int32 n, Int32* programs, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+            public static unsafe bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] Int32* programs, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107854,7 +107854,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static bool AreProgramsResident(Int32 n, UInt32[] programs, [OutAttribute] bool[] residences) { throw new NotImplementedException(); }
+            public static bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] programs, [OutAttribute, CountAttribute(Parameter = "n")] bool[] residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107862,7 +107862,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static bool AreProgramsResident(Int32 n, ref UInt32 programs, [OutAttribute] out bool residences) { throw new NotImplementedException(); }
+            public static bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 programs, [OutAttribute, CountAttribute(Parameter = "n")] out bool residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
@@ -107870,7 +107870,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="residences">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glAreProgramsResidentNV")]
             [CLSCompliant(false)]
-            public static unsafe bool AreProgramsResident(Int32 n, UInt32* programs, [OutAttribute] bool* residences) { throw new NotImplementedException(); }
+            public static unsafe bool AreProgramsResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_conditional_render]
             /// Start conditional rendering
@@ -108241,19 +108241,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor3hvNV")]
             [CLSCompliant(false)]
-            public static void Color3h(Half[] v) { throw new NotImplementedException(); }
+            public static void Color3h([CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor3hvNV")]
             [CLSCompliant(false)]
-            public static void Color3h(ref Half v) { throw new NotImplementedException(); }
+            public static void Color3h([CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Color3h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Color3h([CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="red"></param>
@@ -108267,19 +108267,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor4hvNV")]
             [CLSCompliant(false)]
-            public static void Color4h(Half[] v) { throw new NotImplementedException(); }
+            public static void Color4h([CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor4hvNV")]
             [CLSCompliant(false)]
-            public static void Color4h(ref Half v) { throw new NotImplementedException(); }
+            public static void Color4h([CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glColor4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Color4h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Color4h([CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="size"></param>
@@ -108320,17 +108320,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glCombinerParameterfvNV")]
             [CLSCompliant(false)]
-            public static void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glCombinerParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="pname"></param>
@@ -108340,41 +108340,41 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glCombinerParameterivNV")]
             [CLSCompliant(false)]
-            public static void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glCombinerParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_copy_image]
             /// Perform a raw data copy between two images
@@ -108493,408 +108493,408 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -108915,408 +108915,408 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="coverMode"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glCoverStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -109338,109 +109338,109 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFence(UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFence([CountAttribute(Parameter = "n")] UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, Int32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref Int32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, UInt32[] fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static void DeleteFences(Int32 n, ref UInt32 fences) { throw new NotImplementedException(); }
+            public static void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glDeleteFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteFences(Int32 n, UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void DeleteFences(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQuery(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQuery(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteOcclusionQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void DeleteOcclusionQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glDeleteOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteOcclusionQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteOcclusionQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -109464,7 +109464,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram([CountAttribute(Parameter = "n")] Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109474,7 +109474,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(UInt32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram([CountAttribute(Parameter = "n")] UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109485,7 +109485,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, Int32[] programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109496,7 +109496,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, ref Int32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109507,7 +109507,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgram(Int32 n, Int32* programs) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109518,7 +109518,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, UInt32[] programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109529,7 +109529,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static void DeleteProgram(Int32 n, ref UInt32 programs) { throw new NotImplementedException(); }
+            public static void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Deletes a program object
@@ -109540,7 +109540,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glDeleteProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteProgram(Int32 n, UInt32* programs) { throw new NotImplementedException(); }
+            public static unsafe void DeleteProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109550,7 +109550,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedback(Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109560,7 +109560,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedback(UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109573,7 +109573,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedbacks(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109586,7 +109586,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedbacks(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109599,7 +109599,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteTransformFeedbacks(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109612,7 +109612,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedbacks(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109625,7 +109625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void DeleteTransformFeedbacks(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+            public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Delete transform feedback objects
@@ -109638,7 +109638,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDeleteTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static unsafe void DeleteTransformFeedbacks(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_depth_buffer_float]</summary>
             /// <param name="zmin"></param>
@@ -109785,7 +109785,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Single[] @params) { throw new NotImplementedException(); }
+            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -109793,7 +109793,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, ref Single @params) { throw new NotImplementedException(); }
+            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -109801,7 +109801,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -109809,7 +109809,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Single[] @params) { throw new NotImplementedException(); }
+            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, [CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -109817,7 +109817,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, ref Single @params) { throw new NotImplementedException(); }
+            public static void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, [CountAttribute(Count = 4)] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -109825,7 +109825,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glExecuteProgramNV")]
             [CLSCompliant(false)]
-            public static unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, [CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
@@ -109871,7 +109871,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="fog">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glFogCoordhvNV")]
             [CLSCompliant(false)]
-            public static unsafe void FogCoordh(Half* fog) { throw new NotImplementedException(); }
+            public static unsafe void FogCoordh([CountAttribute(Count = 1)] Half* fog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
@@ -109883,42 +109883,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] Int32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out Int32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] UInt32[] fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static void GenFences(Int32 n, [OutAttribute] out UInt32 fences) { throw new NotImplementedException(); }
+            public static void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="n"></param>
             /// <param name="fences">[length: n]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGenFencesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences) { throw new NotImplementedException(); }
+            public static unsafe void GenFences(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
@@ -109930,42 +109930,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void GenOcclusionQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void GenOcclusionQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenOcclusionQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void GenOcclusionQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static void GenOcclusionQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="n"></param>
             /// <param name="ids">[length: n]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGenOcclusionQueriesNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenOcclusionQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenOcclusionQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="range"></param>
@@ -109982,42 +109982,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] Int32[] programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] out Int32 programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgram(Int32 n, [OutAttribute] Int32* programs) { throw new NotImplementedException(); }
+            public static unsafe void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] UInt32[] programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static void GenProgram(Int32 n, [OutAttribute] out UInt32 programs) { throw new NotImplementedException(); }
+            public static void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGenProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenProgram(Int32 n, [OutAttribute] UInt32* programs) { throw new NotImplementedException(); }
+            public static unsafe void GenProgram(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110037,7 +110037,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+            public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110050,7 +110050,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+            public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110063,7 +110063,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110076,7 +110076,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+            public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110089,7 +110089,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+            public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Reserve transform feedback object names
@@ -110102,7 +110102,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
             [CLSCompliant(false)]
-            public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+            public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
@@ -110111,10 +110111,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: 1]</param>
             /// <param name="size">[length: 1]</param>
             /// <param name="type">[length: 1]</param>
-            /// <param name="name">[length: program,index,bufSize]</param>
+            /// <param name="name">[length: COMPSIZE(program,index,bufSize)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute, CountAttribute(Computed = "program,index,bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
@@ -110123,10 +110123,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: 1]</param>
             /// <param name="size">[length: 1]</param>
             /// <param name="type">[length: 1]</param>
-            /// <param name="name">[length: program,index,bufSize]</param>
+            /// <param name="name">[length: COMPSIZE(program,index,bufSize)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute, CountAttribute(Computed = "program,index,bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
@@ -110135,10 +110135,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: 1]</param>
             /// <param name="size">[length: 1]</param>
             /// <param name="type">[length: 1]</param>
-            /// <param name="name">[length: program,index,bufSize]</param>
+            /// <param name="name">[length: COMPSIZE(program,index,bufSize)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute, CountAttribute(Computed = "program,index,bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
@@ -110147,10 +110147,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length">[length: 1]</param>
             /// <param name="size">[length: 1]</param>
             /// <param name="type">[length: 1]</param>
-            /// <param name="name">[length: program,index,bufSize]</param>
+            /// <param name="name">[length: COMPSIZE(program,index,bufSize)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetActiveVaryingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+            public static unsafe void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute, CountAttribute(Computed = "program,index,bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110161,12 +110161,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110177,12 +110177,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110193,12 +110193,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110209,12 +110209,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110225,12 +110225,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Return parameters of a buffer object
@@ -110241,246 +110241,246 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// Returns the requested parameter.
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="stage"></param>
             /// <param name="portion"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetCombinerOutputParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glGetCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glGetCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners2]</summary>
             /// <param name="stage"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners2", Version = "", EntryPoint = "glGetCombinerStageParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fence]</summary>
             /// <param name="fence"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_fence", Version = "", EntryPoint = "glGetFenceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_register_combiners]</summary>
             /// <param name="variable"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_register_combiners", Version = "", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="texture"></param>
@@ -110505,50 +110505,50 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] Int64[] result) { throw new NotImplementedException(); }
+            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute, CountAttribute(Computed = "value")] Int64[] result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] out Int64 result) { throw new NotImplementedException(); }
+            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute, CountAttribute(Computed = "value")] out Int64 result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] Int64* result) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute, CountAttribute(Computed = "value")] Int64* result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] UInt64[] result) { throw new NotImplementedException(); }
+            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute, CountAttribute(Computed = "value")] UInt64[] result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] out UInt64 result) { throw new NotImplementedException(); }
+            public static void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute, CountAttribute(Computed = "value")] out UInt64 result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="value"></param>
             /// <param name="index"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "", EntryPoint = "glGetIntegerui64i_vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] UInt64* result) { throw new NotImplementedException(); }
+            public static unsafe void GetIntegerui64(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute, CountAttribute(Computed = "value")] UInt64* result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
@@ -110558,153 +110558,153 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] Int64[] result) { throw new NotImplementedException(); }
+            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] Int64[] result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] out Int64 result) { throw new NotImplementedException(); }
+            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] out Int64 result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] Int64* result) { throw new NotImplementedException(); }
+            public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] Int64* result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] UInt64[] result) { throw new NotImplementedException(); }
+            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] UInt64[] result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] out UInt64 result) { throw new NotImplementedException(); }
+            public static void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] out UInt64 result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="value"></param>
-            /// <param name="result">[length: value]</param>
+            /// <param name="result">[length: COMPSIZE(value)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetIntegerui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] UInt64* result) { throw new NotImplementedException(); }
+            public static unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute, CountAttribute(Computed = "value")] UInt64* result) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapAttribParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
@@ -110713,10 +110713,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute] IntPtr points) { throw new NotImplementedException(); }
+            public static void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute, CountAttribute(Computed = "target")] IntPtr points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
@@ -110725,10 +110725,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110739,10 +110739,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[,] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110753,10 +110753,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,,] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[,,] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110767,10 +110767,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] ref T6 points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] ref T6 points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110781,10 +110781,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute] IntPtr points) { throw new NotImplementedException(); }
+            public static void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute, CountAttribute(Computed = "target")] IntPtr points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
@@ -110793,10 +110793,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110807,10 +110807,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[,] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110821,10 +110821,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,,] points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] T6[,,] points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
@@ -110835,60 +110835,60 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="ustride"></param>
             /// <param name="vstride"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] ref T6 points)
+            public static void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target")] ref T6 points)
                 where T6 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glGetMapParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110904,7 +110904,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute, CountAttribute(Count = 2)] Single[] val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110920,7 +110920,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute, CountAttribute(Count = 2)] out Single val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110936,7 +110936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+            public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute, CountAttribute(Count = 2)] Single* val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110952,7 +110952,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute, CountAttribute(Count = 2)] Single[] val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110968,7 +110968,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+            public static void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute, CountAttribute(Count = 2)] out Single val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_explicit_multisample]
             /// Retrieve the location of a sample
@@ -110984,229 +110984,229 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+            public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute, CountAttribute(Count = 2)] Single* val) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="buffer"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use strongly typed overload instead")]
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glGetNamedBufferParameterui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryuivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryuivNV")]
             [CLSCompliant(false)]
-            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_occlusion_query]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_occlusion_query", Version = "", EntryPoint = "glGetOcclusionQueryuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value) { throw new NotImplementedException(); }
+            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value) { throw new NotImplementedException(); }
+            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenivNV")]
             [CLSCompliant(false)]
-            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value) { throw new NotImplementedException(); }
+            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenivNV")]
             [CLSCompliant(false)]
-            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value) { throw new NotImplementedException(); }
+            public static void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathColorGenivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111222,45 +111222,45 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCommands(Int32 path, [OutAttribute] Byte[] commands) { throw new NotImplementedException(); }
+            public static void GetPathCommands(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Byte[] commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCommands(Int32 path, [OutAttribute] out Byte commands) { throw new NotImplementedException(); }
+            public static void GetPathCommands(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] out Byte commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathCommands(Int32 path, [OutAttribute] Byte* commands) { throw new NotImplementedException(); }
+            public static unsafe void GetPathCommands(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Byte* commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCommands(UInt32 path, [OutAttribute] Byte[] commands) { throw new NotImplementedException(); }
+            public static void GetPathCommands(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Byte[] commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCommands(UInt32 path, [OutAttribute] out Byte commands) { throw new NotImplementedException(); }
+            public static void GetPathCommands(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] out Byte commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="commands">[length: path]</param>
+            /// <param name="commands">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathCommands(UInt32 path, [OutAttribute] Byte* commands) { throw new NotImplementedException(); }
+            public static unsafe void GetPathCommands(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Byte* commands) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111276,45 +111276,45 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCoords(Int32 path, [OutAttribute] Single[] coords) { throw new NotImplementedException(); }
+            public static void GetPathCoords(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCoords(Int32 path, [OutAttribute] out Single coords) { throw new NotImplementedException(); }
+            public static void GetPathCoords(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] out Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathCoords(Int32 path, [OutAttribute] Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void GetPathCoords(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCoords(UInt32 path, [OutAttribute] Single[] coords) { throw new NotImplementedException(); }
+            public static void GetPathCoords(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void GetPathCoords(UInt32 path, [OutAttribute] out Single coords) { throw new NotImplementedException(); }
+            public static void GetPathCoords(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] out Single coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="coords">[length: path]</param>
+            /// <param name="coords">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathCoordsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathCoords(UInt32 path, [OutAttribute] Single* coords) { throw new NotImplementedException(); }
+            public static unsafe void GetPathCoords(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111330,45 +111330,45 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void GetPathDashArray(Int32 path, [OutAttribute] Single[] dashArray) { throw new NotImplementedException(); }
+            public static void GetPathDashArray(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Single[] dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void GetPathDashArray(Int32 path, [OutAttribute] out Single dashArray) { throw new NotImplementedException(); }
+            public static void GetPathDashArray(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] out Single dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathDashArray(Int32 path, [OutAttribute] Single* dashArray) { throw new NotImplementedException(); }
+            public static unsafe void GetPathDashArray(Int32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void GetPathDashArray(UInt32 path, [OutAttribute] Single[] dashArray) { throw new NotImplementedException(); }
+            public static void GetPathDashArray(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single[] dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void GetPathDashArray(UInt32 path, [OutAttribute] out Single dashArray) { throw new NotImplementedException(); }
+            public static void GetPathDashArray(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] out Single dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
-            /// <param name="dashArray">[length: path]</param>
+            /// <param name="dashArray">[length: COMPSIZE(path)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathDashArray(UInt32 path, [OutAttribute] Single* dashArray) { throw new NotImplementedException(); }
+            public static unsafe void GetPathDashArray(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111391,108 +111391,108 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single[] metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] out Single metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single* metrics) { throw new NotImplementedException(); }
+            public static unsafe void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single[] metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] out Single metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="firstPathName"></param>
             /// <param name="numPaths"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricRangeNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single* metrics) { throw new NotImplementedException(); }
+            public static unsafe void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics) { throw new NotImplementedException(); }
+            public static unsafe void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111500,13 +111500,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111514,13 +111514,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111528,13 +111528,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111542,13 +111542,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111556,13 +111556,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111570,13 +111570,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111584,13 +111584,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111598,13 +111598,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111612,13 +111612,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111626,13 +111626,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111640,13 +111640,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111654,49 +111654,49 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics) { throw new NotImplementedException(); }
+            public static void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics) { throw new NotImplementedException(); }
+            public static unsafe void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111704,13 +111704,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111718,13 +111718,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111732,13 +111732,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111746,13 +111746,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111760,13 +111760,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111774,13 +111774,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111788,13 +111788,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111802,13 +111802,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111816,13 +111816,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single[] metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111830,13 +111830,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
+            public static void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] out Single metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111844,13 +111844,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="metricQueryMask"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="stride"></param>
-            /// <param name="metrics">[length: metricQueryMask,numPaths,stride]</param>
+            /// <param name="metrics">[length: COMPSIZE(metricQueryMask,numPaths,stride)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathMetricsNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
+            public static unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -111860,7 +111860,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111868,7 +111868,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] out Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111876,7 +111876,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111884,7 +111884,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111892,7 +111892,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] out Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111900,7 +111900,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111908,7 +111908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111916,7 +111916,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111924,7 +111924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111932,7 +111932,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111940,7 +111940,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value) { throw new NotImplementedException(); }
+            public static void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -111948,105 +111948,105 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: 4]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing) { throw new NotImplementedException(); }
+            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing) { throw new NotImplementedException(); }
+            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing) { throw new NotImplementedException(); }
+            public static unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing) { throw new NotImplementedException(); }
+            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing) { throw new NotImplementedException(); }
+            public static void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing) { throw new NotImplementedException(); }
+            public static unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112054,15 +112054,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112070,15 +112070,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112086,15 +112086,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112102,15 +112102,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112118,15 +112118,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112134,15 +112134,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112150,15 +112150,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112166,15 +112166,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112182,15 +112182,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112198,15 +112198,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112214,15 +112214,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112230,15 +112230,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112246,15 +112246,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112262,15 +112262,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112278,15 +112278,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112294,15 +112294,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112310,15 +112310,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112326,15 +112326,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112342,15 +112342,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112358,15 +112358,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112374,15 +112374,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single[] returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112390,15 +112390,15 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
+            public static void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] out Single returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -112406,65 +112406,65 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathListMode"></param>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="advanceScale"></param>
             /// <param name="kerningScale"></param>
             /// <param name="transformType"></param>
-            /// <param name="returnedSpacing">[length: pathListMode,numPaths]</param>
+            /// <param name="returnedSpacing">[length: COMPSIZE(pathListMode,numPaths)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathSpacingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
+            public static unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value) { throw new NotImplementedException(); }
+            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenfvNV")]
             [CLSCompliant(false)]
-            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value) { throw new NotImplementedException(); }
+            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenivNV")]
             [CLSCompliant(false)]
-            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value) { throw new NotImplementedException(); }
+            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenivNV")]
             [CLSCompliant(false)]
-            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value) { throw new NotImplementedException(); }
+            public static void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glGetPathTexGenivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112472,7 +112472,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112480,7 +112480,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112488,7 +112488,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112496,7 +112496,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112504,7 +112504,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112512,7 +112512,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112520,7 +112520,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIuivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112528,7 +112528,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIuivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112536,7 +112536,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramEnvParameterIuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112552,7 +112552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112568,7 +112568,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112584,7 +112584,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112600,7 +112600,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112616,7 +112616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Returns a parameter from a program object
@@ -112632,7 +112632,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112640,7 +112640,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112648,7 +112648,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112656,7 +112656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112664,7 +112664,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112672,7 +112672,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112680,7 +112680,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112688,7 +112688,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIuivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112696,7 +112696,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIuivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -112704,7 +112704,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glGetProgramLocalParameterIuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112713,7 +112713,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112722,7 +112722,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112731,7 +112731,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112740,7 +112740,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112749,7 +112749,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112758,7 +112758,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112767,7 +112767,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112776,7 +112776,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112785,7 +112785,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramNamedParameter(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112794,7 +112794,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112803,7 +112803,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -112812,7 +112812,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glGetProgramNamedParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112821,7 +112821,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112830,7 +112830,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112839,7 +112839,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112848,7 +112848,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112857,7 +112857,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112866,7 +112866,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112875,7 +112875,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112884,7 +112884,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112893,7 +112893,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112902,7 +112902,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112911,7 +112911,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -112920,7 +112920,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]
             /// Retrieve values for multiple properties of a single active resource within a program object
@@ -113039,98 +113039,98 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte[] program) { throw new NotImplementedException(); }
+            public static void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] Byte[] program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Byte program) { throw new NotImplementedException(); }
+            public static void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] out Byte program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte* program) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] Byte* program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte[] program) { throw new NotImplementedException(); }
+            public static void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] Byte[] program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Byte program) { throw new NotImplementedException(); }
+            public static void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] out Byte program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="id"></param>
             /// <param name="pname"></param>
-            /// <param name="program">[length: id,pname]</param>
+            /// <param name="program">[length: COMPSIZE(id,pname)]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetProgramStringNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte* program) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Computed = "id,pname")] Byte* program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] Int32[] param) { throw new NotImplementedException(); }
+            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] out Int32 param) { throw new NotImplementedException(); }
+            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] UInt32[] param) { throw new NotImplementedException(); }
+            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] UInt32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] out UInt32 param) { throw new NotImplementedException(); }
+            public static void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out UInt32 param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
             /// <param name="index"></param>
-            /// <param name="param">[length: target]</param>
+            /// <param name="param">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] UInt32* param) { throw new NotImplementedException(); }
+            public static unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] UInt32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="texture"></param>
@@ -113165,7 +113165,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetTrackMatrixivNV")]
             [CLSCompliant(false)]
-            public static void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -113174,7 +113174,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetTrackMatrixivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -113183,7 +113183,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetTrackMatrixivNV")]
             [CLSCompliant(false)]
-            public static void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -113192,7 +113192,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetTrackMatrixivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -113208,7 +113208,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingNV")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute] out Int32 location) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute, CountAttribute(Count = 1)] out Int32 location) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -113224,7 +113224,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute] Int32* location) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute, CountAttribute(Count = 1)] Int32* location) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -113240,7 +113240,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingNV")]
             [CLSCompliant(false)]
-            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute] out Int32 location) { throw new NotImplementedException(); }
+            public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] out Int32 location) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Retrieve information about varying variables selected for transform feedback
@@ -113256,7 +113256,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetTransformFeedbackVaryingNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute] Int32* location) { throw new NotImplementedException(); }
+            public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] Int32* location) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113267,12 +113267,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113283,12 +113283,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113299,12 +113299,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113315,12 +113315,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113331,12 +113331,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Returns the value of a uniform variable
@@ -113347,12 +113347,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glGetUniformi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_shader_buffer_load]
             /// Returns the value of a uniform variable
@@ -113363,12 +113363,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_shader_buffer_load", Version = "", EntryPoint = "glGetUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_shader_buffer_load]
             /// Returns the value of a uniform variable
@@ -113379,12 +113379,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_shader_buffer_load", Version = "", EntryPoint = "glGetUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_shader_buffer_load]
             /// Returns the value of a uniform variable
@@ -113395,26 +113395,26 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="location">
             /// Specifies the location of the uniform variable to be queried.
             /// </param>
-            /// <param name="@params">[length: program,location]
+            /// <param name="@params">[length: COMPSIZE(program,location)]
             /// Returns the value of the specified uniform variable.
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_shader_buffer_load", Version = "", EntryPoint = "glGetUniformui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
-            /// <param name="name">[length: name]</param>
+            /// <param name="name">[length: COMPSIZE(name)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetVaryingLocationNV")]
             [CLSCompliant(false)]
-            public static Int32 GetVaryingLocation(Int32 program, String name) { throw new NotImplementedException(); }
+            public static Int32 GetVaryingLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="program"></param>
-            /// <param name="name">[length: name]</param>
+            /// <param name="name">[length: COMPSIZE(name)]</param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glGetVaryingLocationNV")]
             [CLSCompliant(false)]
-            public static Int32 GetVaryingLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+            public static Int32 GetVaryingLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113431,7 +113431,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113448,7 +113448,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113464,7 +113464,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113480,7 +113480,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113497,7 +113497,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113514,7 +113514,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113530,7 +113530,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113546,7 +113546,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113563,7 +113563,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113580,7 +113580,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113596,7 +113596,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113612,7 +113612,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113629,7 +113629,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113646,7 +113646,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113662,7 +113662,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113678,7 +113678,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113695,7 +113695,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113712,7 +113712,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113728,7 +113728,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113744,7 +113744,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113761,7 +113761,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113778,7 +113778,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use NvVertexProgram overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113794,7 +113794,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Return a generic vertex attribute parameter
@@ -113810,79 +113810,79 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLui64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLui64vNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glGetVertexAttribLui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -113890,7 +113890,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -113898,7 +113898,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113908,7 +113908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113918,7 +113918,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113928,7 +113928,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113938,7 +113938,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+            public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -113946,7 +113946,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113956,7 +113956,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113966,7 +113966,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -113976,363 +113976,363 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glGetVertexAttribPointervNV")]
             [CLSCompliant(false)]
-            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glGetVideoCaptureStreamivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoi64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoui64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoui64vNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideoui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideouivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideouivNV")]
             [CLSCompliant(false)]
-            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_present_video", Version = "", EntryPoint = "glGetVideouivNV")]
             [CLSCompliant(false)]
-            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="type"></param>
@@ -114516,7 +114516,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte[] program) { throw new NotImplementedException(); }
+            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, [CountAttribute(Parameter = "len")] Byte[] program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -114525,7 +114525,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, ref Byte program) { throw new NotImplementedException(); }
+            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, [CountAttribute(Parameter = "len")] ref Byte program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -114534,7 +114534,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte* program) { throw new NotImplementedException(); }
+            public static unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, [CountAttribute(Parameter = "len")] Byte* program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -114543,7 +114543,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte[] program) { throw new NotImplementedException(); }
+            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, [CountAttribute(Parameter = "len")] Byte[] program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -114552,7 +114552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, ref Byte program) { throw new NotImplementedException(); }
+            public static void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, [CountAttribute(Parameter = "len")] ref Byte program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -114561,7 +114561,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="program">[length: len]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glLoadProgramNV")]
             [CLSCompliant(false)]
-            public static unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte* program) { throw new NotImplementedException(); }
+            public static unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, [CountAttribute(Parameter = "len")] Byte* program) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]</summary>
             /// <param name="target"></param>
@@ -114659,10 +114659,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points) { throw new NotImplementedException(); }
+            public static void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [CountAttribute(Computed = "target,uorder,vorder")] IntPtr points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
@@ -114673,10 +114673,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114689,10 +114689,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[,] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114705,10 +114705,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,,] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[,,] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114721,10 +114721,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] ref T8 points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] ref T8 points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114737,10 +114737,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points) { throw new NotImplementedException(); }
+            public static void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [CountAttribute(Computed = "target,uorder,vorder")] IntPtr points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
@@ -114751,10 +114751,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114767,10 +114767,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[,] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114783,10 +114783,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,,] points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] T8[,,] points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
@@ -114799,60 +114799,60 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="uorder"></param>
             /// <param name="vorder"></param>
             /// <param name="packed"></param>
-            /// <param name="points">[length: target,uorder,vorder]</param>
+            /// <param name="points">[length: COMPSIZE(target,uorder,vorder)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapControlPointsNV")]
             [CLSCompliant(false)]
-            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] ref T8 points)
+            public static void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute, CountAttribute(Computed = "target,uorder,vorder")] ref T8 points)
                 where T8 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterivNV")]
             [CLSCompliant(false)]
-            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterivNV")]
             [CLSCompliant(false)]
-            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_evaluators]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: target,pname]</param>
+            /// <param name="@params">[length: COMPSIZE(target,pname)]</param>
             [AutoGenerated(Category = "NV_evaluators", Version = "", EntryPoint = "glMapParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [CountAttribute(Computed = "target,pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="matrixMode"></param>
@@ -115235,7 +115235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 1)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
@@ -115249,21 +115249,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 2)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
@@ -115278,21 +115278,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
@@ -115308,21 +115308,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="target"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glMultiTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, [CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="nx"></param>
@@ -115335,19 +115335,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glNormal3hvNV")]
             [CLSCompliant(false)]
-            public static void Normal3h(Half[] v) { throw new NotImplementedException(); }
+            public static void Normal3h([CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glNormal3hvNV")]
             [CLSCompliant(false)]
-            public static void Normal3h(ref Half v) { throw new NotImplementedException(); }
+            public static void Normal3h([CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glNormal3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Normal3h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Normal3h([CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="type"></param>
@@ -115359,28 +115359,28 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="color"></param>
             /// <param name="genMode"></param>
             /// <param name="colorFormat"></param>
-            /// <param name="coeffs">[length: genMode,colorFormat]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,colorFormat)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathColorGenNV")]
             [CLSCompliant(false)]
-            public static void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, Single[] coeffs) { throw new NotImplementedException(); }
+            public static void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, [CountAttribute(Computed = "genMode,colorFormat")] Single[] coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="genMode"></param>
             /// <param name="colorFormat"></param>
-            /// <param name="coeffs">[length: genMode,colorFormat]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,colorFormat)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathColorGenNV")]
             [CLSCompliant(false)]
-            public static void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, ref Single coeffs) { throw new NotImplementedException(); }
+            public static void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, [CountAttribute(Computed = "genMode,colorFormat")] ref Single coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="color"></param>
             /// <param name="genMode"></param>
             /// <param name="colorFormat"></param>
-            /// <param name="coeffs">[length: genMode,colorFormat]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,colorFormat)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathColorGenNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, Single* coeffs) { throw new NotImplementedException(); }
+            public static unsafe void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, [CountAttribute(Computed = "genMode,colorFormat")] Single* coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115388,10 +115388,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCommands(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115399,10 +115399,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115412,10 +115412,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115425,10 +115425,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115438,10 +115438,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115451,10 +115451,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCommands(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115462,10 +115462,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115475,10 +115475,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115488,10 +115488,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115501,10 +115501,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115514,10 +115514,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static unsafe void PathCommands(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115525,10 +115525,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115538,10 +115538,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115551,10 +115551,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115564,10 +115564,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115577,10 +115577,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCommands(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115588,10 +115588,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115601,10 +115601,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115614,10 +115614,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115627,10 +115627,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115640,10 +115640,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCommands(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115651,10 +115651,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115664,10 +115664,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115677,10 +115677,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115690,10 +115690,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115703,10 +115703,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static unsafe void PathCommands(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115714,10 +115714,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
+            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115727,10 +115727,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
+            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115740,10 +115740,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
+            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T5[,,] coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115753,10 +115753,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
+            public static unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T5 coords)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -115764,19 +115764,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCoords(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[] coords)
+            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115784,10 +115784,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,] coords)
+            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[,] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115795,10 +115795,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,,] coords)
+            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[,,] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115806,10 +115806,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T3 coords)
+            public static void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T3 coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115817,19 +115817,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathCoords(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[] coords)
+            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115837,10 +115837,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,] coords)
+            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[,] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115848,10 +115848,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,,] coords)
+            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T3[,,] coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115859,10 +115859,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="path"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T3 coords)
+            public static void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T3 coords)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -115877,7 +115877,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void PathDashArray(Int32 path, Int32 dashCount, Single[] dashArray) { throw new NotImplementedException(); }
+            public static void PathDashArray(Int32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] Single[] dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115885,7 +115885,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void PathDashArray(Int32 path, Int32 dashCount, ref Single dashArray) { throw new NotImplementedException(); }
+            public static void PathDashArray(Int32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] ref Single dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115893,7 +115893,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathDashArray(Int32 path, Int32 dashCount, Single* dashArray) { throw new NotImplementedException(); }
+            public static unsafe void PathDashArray(Int32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] Single* dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115901,7 +115901,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void PathDashArray(UInt32 path, Int32 dashCount, Single[] dashArray) { throw new NotImplementedException(); }
+            public static void PathDashArray(UInt32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] Single[] dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115909,7 +115909,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static void PathDashArray(UInt32 path, Int32 dashCount, ref Single dashArray) { throw new NotImplementedException(); }
+            public static void PathDashArray(UInt32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] ref Single dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -115917,7 +115917,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="dashArray">[length: dashCount]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathDashArrayNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathDashArray(UInt32 path, Int32 dashCount, Single* dashArray) { throw new NotImplementedException(); }
+            public static unsafe void PathDashArray(UInt32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] Single* dashArray) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="genMode"></param>
@@ -116199,7 +116199,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116208,12 +116208,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
+            public static void PathGlyphRange(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116222,14 +116222,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116238,14 +116238,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116254,14 +116254,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116270,14 +116270,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] ref T2 fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116286,12 +116286,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
+            public static void PathGlyphRange(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116300,14 +116300,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116316,14 +116316,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116332,14 +116332,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="firstGlyph"></param>
             /// <param name="numGlyphs"></param>
@@ -116348,39 +116348,39 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphRangeNV")]
             [CLSCompliant(false)]
-            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] ref T2 fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
+            public static void PathGlyph(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [CountAttribute(Computed = "numGlyphs,type,charcodes")] IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116388,17 +116388,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116406,17 +116406,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116424,17 +116424,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] ref T2 fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116442,32 +116442,32 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
+            public static void PathGlyph(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [CountAttribute(Computed = "numGlyphs,type,charcodes")] IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116475,17 +116475,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116493,17 +116493,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] T2[,,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116511,17 +116511,17 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="firstPathName"></param>
             /// <param name="fontTarget"></param>
-            /// <param name="fontName">[length: fontTarget,fontName]</param>
+            /// <param name="fontName">[length: COMPSIZE(fontTarget,fontName)]</param>
             /// <param name="fontStyle"></param>
             /// <param name="numGlyphs"></param>
             /// <param name="type"></param>
-            /// <param name="charcodes">[length: numGlyphs,type,charcodes]</param>
+            /// <param name="charcodes">[length: COMPSIZE(numGlyphs,type,charcodes)]</param>
             /// <param name="handleMissingGlyphs"></param>
             /// <param name="pathParameterTemplate"></param>
             /// <param name="emScale"></param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathGlyphsNV")]
             [CLSCompliant(false)]
-            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
+            public static void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute, CountAttribute(Computed = "fontTarget,fontName")] ref T2 fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute, CountAttribute(Computed = "numGlyphs,type,charcodes")] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                 where T2 : struct
                 where T6 : struct
              { throw new NotImplementedException(); }
@@ -116857,34 +116857,34 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single[] value) { throw new NotImplementedException(); }
+            public static void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single[] value) { throw new NotImplementedException(); }
+            public static void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Single[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single* value) { throw new NotImplementedException(); }
+            public static unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Single* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -116905,34 +116905,34 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32[] value) { throw new NotImplementedException(); }
+            public static void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterivNV")]
             [CLSCompliant(false)]
-            public static void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32[] value) { throw new NotImplementedException(); }
+            public static void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Int32[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="pname"></param>
-            /// <param name="value">[length: pname]</param>
+            /// <param name="value">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32* value) { throw new NotImplementedException(); }
+            public static unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [CountAttribute(Computed = "pname")] Int32* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="factor"></param>
@@ -116963,7 +116963,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, IntPtr pathString) { throw new NotImplementedException(); }
+            public static void PathString(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pathString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -116972,7 +116972,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[] pathString)
+            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -116983,7 +116983,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,] pathString)
+            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -116994,7 +116994,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,,] pathString)
+            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117005,7 +117005,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] ref T3 pathString)
+            public static void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117016,7 +117016,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, IntPtr pathString) { throw new NotImplementedException(); }
+            public static void PathString(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pathString) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117025,7 +117025,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[] pathString)
+            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117036,7 +117036,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,] pathString)
+            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117047,7 +117047,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,,] pathString)
+            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117058,7 +117058,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pathString">[length: length]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathStringNV")]
             [CLSCompliant(false)]
-            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] ref T3 pathString)
+            public static void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 pathString)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -117070,10 +117070,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117083,10 +117083,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117098,10 +117098,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117113,10 +117113,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117128,10 +117128,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117143,10 +117143,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117156,10 +117156,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117171,10 +117171,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117186,10 +117186,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117201,10 +117201,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117216,10 +117216,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static unsafe void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117229,10 +117229,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117244,10 +117244,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117259,10 +117259,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117274,10 +117274,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117289,10 +117289,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117302,10 +117302,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117317,10 +117317,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117332,10 +117332,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117347,10 +117347,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117362,10 +117362,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117375,10 +117375,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117390,10 +117390,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117405,10 +117405,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117420,10 +117420,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117435,10 +117435,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static unsafe void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117448,10 +117448,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
+            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117463,10 +117463,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
+            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117478,10 +117478,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
+            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T7[,,] coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117493,10 +117493,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="commands">[length: numCommands]</param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCommandsNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
+            public static unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T7 coords)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -117505,20 +117505,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCoords(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[] coords)
+            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117527,10 +117527,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,] coords)
+            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[,] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117539,10 +117539,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,,] coords)
+            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[,,] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117551,10 +117551,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T4 coords)
+            public static void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T4 coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117563,20 +117563,20 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords) { throw new NotImplementedException(); }
+            public static void PathSubCoords(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[] coords)
+            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117585,10 +117585,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,] coords)
+            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[,] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117597,10 +117597,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,,] coords)
+            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] T4[,,] coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117609,10 +117609,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coordStart"></param>
             /// <param name="numCoords"></param>
             /// <param name="coordType"></param>
-            /// <param name="coords">[length: numCoords,coordType]</param>
+            /// <param name="coords">[length: COMPSIZE(numCoords,coordType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathSubCoordsNV")]
             [CLSCompliant(false)]
-            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T4 coords)
+            public static void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute, CountAttribute(Computed = "numCoords,coordType")] ref T4 coords)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -117620,28 +117620,28 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="texCoordSet"></param>
             /// <param name="genMode"></param>
             /// <param name="components"></param>
-            /// <param name="coeffs">[length: genMode,components]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,components)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathTexGenNV")]
             [CLSCompliant(false)]
-            public static void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, Single[] coeffs) { throw new NotImplementedException(); }
+            public static void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, [CountAttribute(Computed = "genMode,components")] Single[] coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="genMode"></param>
             /// <param name="components"></param>
-            /// <param name="coeffs">[length: genMode,components]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,components)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathTexGenNV")]
             [CLSCompliant(false)]
-            public static void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, ref Single coeffs) { throw new NotImplementedException(); }
+            public static void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, [CountAttribute(Computed = "genMode,components")] ref Single coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="texCoordSet"></param>
             /// <param name="genMode"></param>
             /// <param name="components"></param>
-            /// <param name="coeffs">[length: genMode,components]</param>
+            /// <param name="coeffs">[length: COMPSIZE(genMode,components)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPathTexGenNV")]
             [CLSCompliant(false)]
-            public static unsafe void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, Single* coeffs) { throw new NotImplementedException(); }
+            public static unsafe void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, [CountAttribute(Computed = "genMode,components")] Single* coeffs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Pause transform feedback operations
@@ -117654,7 +117654,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "NV_pixel_data_range", Version = "", EntryPoint = "glPixelDataRangeNV")]
-            public static void PixelDataRange(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void PixelDataRange(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_pixel_data_range]</summary>
             /// <param name="target"></param>
@@ -117662,7 +117662,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "NV_pixel_data_range", Version = "", EntryPoint = "glPixelDataRangeNV")]
             [CLSCompliant(false)]
-            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[] pointer)
+            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -117672,7 +117672,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "NV_pixel_data_range", Version = "", EntryPoint = "glPixelDataRangeNV")]
             [CLSCompliant(false)]
-            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -117682,7 +117682,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "NV_pixel_data_range", Version = "", EntryPoint = "glPixelDataRangeNV")]
             [CLSCompliant(false)]
-            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -117691,7 +117691,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="length"></param>
             /// <param name="pointer">[length: length]</param>
             [AutoGenerated(Category = "NV_pixel_data_range", Version = "", EntryPoint = "glPixelDataRangeNV")]
-            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -117706,7 +117706,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="tangentY">[length: 1]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPointAlongPathNV")]
             [CLSCompliant(false)]
-            public static bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] out Single x, [OutAttribute] out Single y, [OutAttribute] out Single tangentX, [OutAttribute] out Single tangentY) { throw new NotImplementedException(); }
+            public static bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute, CountAttribute(Count = 1)] out Single x, [OutAttribute, CountAttribute(Count = 1)] out Single y, [OutAttribute, CountAttribute(Count = 1)] out Single tangentX, [OutAttribute, CountAttribute(Count = 1)] out Single tangentY) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117719,7 +117719,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="tangentY">[length: 1]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPointAlongPathNV")]
             [CLSCompliant(false)]
-            public static unsafe bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] Single* x, [OutAttribute] Single* y, [OutAttribute] Single* tangentX, [OutAttribute] Single* tangentY) { throw new NotImplementedException(); }
+            public static unsafe bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute, CountAttribute(Count = 1)] Single* x, [OutAttribute, CountAttribute(Count = 1)] Single* y, [OutAttribute, CountAttribute(Count = 1)] Single* tangentX, [OutAttribute, CountAttribute(Count = 1)] Single* tangentY) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117732,7 +117732,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="tangentY">[length: 1]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPointAlongPathNV")]
             [CLSCompliant(false)]
-            public static bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] out Single x, [OutAttribute] out Single y, [OutAttribute] out Single tangentX, [OutAttribute] out Single tangentY) { throw new NotImplementedException(); }
+            public static bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute, CountAttribute(Count = 1)] out Single x, [OutAttribute, CountAttribute(Count = 1)] out Single y, [OutAttribute, CountAttribute(Count = 1)] out Single tangentX, [OutAttribute, CountAttribute(Count = 1)] out Single tangentY) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="path"></param>
@@ -117745,7 +117745,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="tangentY">[length: 1]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glPointAlongPathNV")]
             [CLSCompliant(false)]
-            public static unsafe bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] Single* x, [OutAttribute] Single* y, [OutAttribute] Single* tangentX, [OutAttribute] Single* tangentY) { throw new NotImplementedException(); }
+            public static unsafe bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute, CountAttribute(Count = 1)] Single* x, [OutAttribute, CountAttribute(Count = 1)] Single* y, [OutAttribute, CountAttribute(Count = 1)] Single* tangentX, [OutAttribute, CountAttribute(Count = 1)] Single* tangentY) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_point_sprite]
             /// Specify point parameters
@@ -117765,12 +117765,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "NV_point_sprite", Version = "", EntryPoint = "glPointParameterivNV")]
             [CLSCompliant(false)]
-            public static void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_point_sprite]
             /// Specify point parameters
@@ -117778,12 +117778,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "NV_point_sprite", Version = "", EntryPoint = "glPointParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_present_video]</summary>
             /// <param name="video_slot"></param>
@@ -117885,7 +117885,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117895,7 +117895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117905,7 +117905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117915,7 +117915,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Single[] @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117925,7 +117925,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref Single @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117935,7 +117935,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117945,7 +117945,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117955,7 +117955,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117965,7 +117965,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117975,7 +117975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117985,7 +117985,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -117995,7 +117995,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -118005,7 +118005,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -118015,7 +118015,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_parameter_buffer_object]</summary>
             /// <param name="target"></param>
@@ -118025,7 +118025,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "", EntryPoint = "glProgramBufferParametersIuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118055,7 +118055,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118063,7 +118063,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118071,7 +118071,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118079,7 +118079,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118087,7 +118087,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118095,7 +118095,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118114,7 +118114,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118122,7 +118122,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118130,7 +118130,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118139,7 +118139,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118148,7 +118148,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118157,7 +118157,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118166,7 +118166,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118175,7 +118175,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118184,7 +118184,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118193,7 +118193,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118202,7 +118202,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118211,7 +118211,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramEnvParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118241,7 +118241,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118249,7 +118249,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118257,7 +118257,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118265,7 +118265,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118273,7 +118273,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118281,7 +118281,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118300,7 +118300,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118308,7 +118308,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118316,7 +118316,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: 4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParameterI4uivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118325,7 +118325,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118334,7 +118334,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118343,7 +118343,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118352,7 +118352,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118361,7 +118361,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118370,7 +118370,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4ivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118379,7 +118379,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118388,7 +118388,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program4]</summary>
             /// <param name="target"></param>
@@ -118397,7 +118397,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count*4]</param>
             [AutoGenerated(Category = "NV_gpu_program4", Version = "", EntryPoint = "glProgramLocalParametersI4uivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118409,7 +118409,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118421,7 +118421,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118433,7 +118433,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118445,7 +118445,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Double x, Double y, Double z, Double w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118454,7 +118454,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118463,7 +118463,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118472,7 +118472,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118481,7 +118481,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118490,7 +118490,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118499,7 +118499,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118511,7 +118511,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118523,7 +118523,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118535,7 +118535,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118547,7 +118547,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w"></param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Single x, Single y, Single z, Single w) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118556,7 +118556,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118565,7 +118565,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118574,7 +118574,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, Byte* name, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(Int32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118583,7 +118583,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118592,7 +118592,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] ref Byte name, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_fragment_program]</summary>
             /// <param name="id"></param>
@@ -118601,7 +118601,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_fragment_program", Version = "", EntryPoint = "glProgramNamedParameter4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, Byte* name, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramNamedParameter4(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118655,7 +118655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118671,7 +118671,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118687,7 +118687,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118703,7 +118703,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118719,7 +118719,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118735,7 +118735,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118789,7 +118789,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118805,7 +118805,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118821,7 +118821,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118837,7 +118837,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118853,7 +118853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specify a parameter for a program object
@@ -118869,7 +118869,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameter4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118878,7 +118878,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118887,7 +118887,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118896,7 +118896,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118905,7 +118905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118914,7 +118914,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118923,7 +118923,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118933,7 +118933,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118943,7 +118943,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118953,7 +118953,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118962,7 +118962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118971,7 +118971,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118980,7 +118980,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118989,7 +118989,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -118998,7 +118998,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -119007,7 +119007,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -119017,7 +119017,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -119027,7 +119027,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="target"></param>
@@ -119037,7 +119037,7 @@ namespace OpenTK.Graphics.OpenGL
             [Obsolete("Use int overload instead")]
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glProgramParameters4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, UInt32 count, [CountAttribute(Parameter = "count*4")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="program"></param>
@@ -119105,7 +119105,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
@@ -119113,7 +119113,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
@@ -119121,7 +119121,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
@@ -119129,7 +119129,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, UInt32[] @params) { throw new NotImplementedException(); }
+            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
@@ -119137,7 +119137,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, ref UInt32 @params) { throw new NotImplementedException(); }
+            public static void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_gpu_program5]</summary>
             /// <param name="target"></param>
@@ -119145,7 +119145,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="@params">[length: count]</param>
             [AutoGenerated(Category = "NV_gpu_program5", Version = "", EntryPoint = "glProgramSubroutineParametersuivNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, [CountAttribute(Parameter = "count")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119196,7 +119196,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119215,7 +119215,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119234,7 +119234,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119253,7 +119253,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119272,7 +119272,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119291,7 +119291,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119326,7 +119326,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119345,7 +119345,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119364,7 +119364,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119421,7 +119421,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119440,7 +119440,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119459,7 +119459,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119478,7 +119478,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119497,7 +119497,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119516,7 +119516,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119554,7 +119554,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119573,7 +119573,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119592,7 +119592,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119655,7 +119655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119674,7 +119674,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119693,7 +119693,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119712,7 +119712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119731,7 +119731,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119750,7 +119750,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119791,7 +119791,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119810,7 +119810,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119829,7 +119829,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119898,7 +119898,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119917,7 +119917,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119936,7 +119936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119955,7 +119955,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119974,7 +119974,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -119993,7 +119993,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -120037,7 +120037,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -120056,7 +120056,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for a specified program object
@@ -120075,7 +120075,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glProgramUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120100,7 +120100,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120109,7 +120109,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, ref Int64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120118,7 +120118,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120127,7 +120127,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120136,7 +120136,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, ref UInt64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -120145,7 +120145,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120196,7 +120196,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform(Int32 program, Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120215,7 +120215,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform(Int32 program, Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120234,7 +120234,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform(Int32 program, Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120253,7 +120253,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform(UInt32 program, Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void ProgramUniform(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120272,7 +120272,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void ProgramUniform(UInt32 program, Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void ProgramUniform(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for a specified program object
@@ -120291,7 +120291,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glProgramUniformui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniform(UInt32 program, Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniform(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_geometry_program4]</summary>
             /// <param name="target"></param>
@@ -120314,42 +120314,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static void RequestResidentProgram(Int32 n, Int32[] programs) { throw new NotImplementedException(); }
+            public static void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static void RequestResidentProgram(Int32 n, ref Int32 programs) { throw new NotImplementedException(); }
+            public static void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void RequestResidentProgram(Int32 n, Int32* programs) { throw new NotImplementedException(); }
+            public static unsafe void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] Int32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static void RequestResidentProgram(Int32 n, UInt32[] programs) { throw new NotImplementedException(); }
+            public static void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static void RequestResidentProgram(Int32 n, ref UInt32 programs) { throw new NotImplementedException(); }
+            public static void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="n"></param>
             /// <param name="programs">[length: n]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glRequestResidentProgramsNV")]
             [CLSCompliant(false)]
-            public static unsafe void RequestResidentProgram(Int32 n, UInt32* programs) { throw new NotImplementedException(); }
+            public static unsafe void RequestResidentProgram(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback2]
             /// Resume transform feedback operations
@@ -120382,19 +120382,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glSecondaryColor3hvNV")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3h(Half[] v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3h([CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glSecondaryColor3hvNV")]
             [CLSCompliant(false)]
-            public static void SecondaryColor3h(ref Half v) { throw new NotImplementedException(); }
+            public static void SecondaryColor3h([CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glSecondaryColor3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void SecondaryColor3h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void SecondaryColor3h([CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="size"></param>
@@ -120420,438 +120420,438 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="fillMode"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilFillPathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -120874,438 +120874,438 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single[] transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
+            public static void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] ref Single transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="numPaths"></param>
             /// <param name="pathNameType"></param>
-            /// <param name="paths">[length: numPaths,pathNameType,paths]</param>
+            /// <param name="paths">[length: COMPSIZE(numPaths,pathNameType,paths)]</param>
             /// <param name="pathBase"></param>
             /// <param name="reference"></param>
             /// <param name="mask"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: numPaths,transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(numPaths,transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glStencilStrokePathInstancedNV")]
             [CLSCompliant(false)]
-            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
+            public static unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute, CountAttribute(Computed = "numPaths,pathNameType,paths")] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -122318,7 +122318,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1h([CountAttribute(Count = 1)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="s"></param>
@@ -122330,19 +122330,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord2h(Half[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2h([CountAttribute(Count = 2)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord2h(ref Half v) { throw new NotImplementedException(); }
+            public static void TexCoord2h([CountAttribute(Count = 2)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2h([CountAttribute(Count = 2)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="s"></param>
@@ -122355,19 +122355,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord3h(Half[] v) { throw new NotImplementedException(); }
+            public static void TexCoord3h([CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord3h(ref Half v) { throw new NotImplementedException(); }
+            public static void TexCoord3h([CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3h([CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="s"></param>
@@ -122381,19 +122381,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord4h(Half[] v) { throw new NotImplementedException(); }
+            public static void TexCoord4h([CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static void TexCoord4h(ref Half v) { throw new NotImplementedException(); }
+            public static void TexCoord4h([CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glTexCoord4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4h([CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="size"></param>
@@ -122567,27 +122567,27 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
-            /// <param name="attribs">[length: count]</param>
+            /// <param name="attribs">[length: COMPSIZE(count)]</param>
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackAttribsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackAttrib(Int32 count, Int32[] attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackAttrib(Int32 count, [CountAttribute(Computed = "count")] Int32[] attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
-            /// <param name="attribs">[length: count]</param>
+            /// <param name="attribs">[length: COMPSIZE(count)]</param>
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackAttribsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackAttrib(Int32 count, ref Int32 attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackAttrib(Int32 count, [CountAttribute(Computed = "count")] ref Int32 attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
-            /// <param name="attribs">[length: count]</param>
+            /// <param name="attribs">[length: COMPSIZE(count)]</param>
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackAttribsNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformFeedbackAttrib(Int32 count, Int32* attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static unsafe void TransformFeedbackAttrib(Int32 count, [CountAttribute(Computed = "count")] Int32* attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
@@ -122597,7 +122597,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackStreamAttrib(Int32 count, Int32[] attribs, Int32 nbuffers, Int32[] bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackStreamAttrib(Int32 count, [CountAttribute(Parameter = "count")] Int32[] attribs, Int32 nbuffers, [CountAttribute(Parameter = "nbuffers")] Int32[] bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
@@ -122607,7 +122607,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackStreamAttrib(Int32 count, ref Int32 attribs, Int32 nbuffers, ref Int32 bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackStreamAttrib(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 attribs, Int32 nbuffers, [CountAttribute(Parameter = "nbuffers")] ref Int32 bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]</summary>
             /// <param name="count"></param>
@@ -122617,7 +122617,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="bufferMode"></param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformFeedbackStreamAttrib(Int32 count, Int32* attribs, Int32 nbuffers, Int32* bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static unsafe void TransformFeedbackStreamAttrib(Int32 count, [CountAttribute(Parameter = "count")] Int32* attribs, Int32 nbuffers, [CountAttribute(Parameter = "nbuffers")] Int32* bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122636,7 +122636,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(Int32 program, Int32 count, Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122655,7 +122655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(Int32 program, Int32 count, ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122674,7 +122674,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformFeedbackVaryings(Int32 program, Int32 count, Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static unsafe void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122693,7 +122693,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122712,7 +122712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_transform_feedback]
             /// Specify values to record in transform feedback buffers
@@ -122731,61 +122731,61 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_transform_feedback", Version = "", EntryPoint = "glTransformFeedbackVaryingsNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformFeedbackVaryings(UInt32 program, Int32 count, Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
+            public static unsafe void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues) { throw new NotImplementedException(); }
+            public static void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] Single[] transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues) { throw new NotImplementedException(); }
+            public static void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] ref Single transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
             /// <param name="srcPath"></param>
             /// <param name="transformType"></param>
-            /// <param name="transformValues">[length: transformType]</param>
+            /// <param name="transformValues">[length: COMPSIZE(transformType)]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glTransformPathNV")]
             [CLSCompliant(false)]
-            public static unsafe void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues) { throw new NotImplementedException(); }
+            public static unsafe void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [CountAttribute(Computed = "transformType")] Single* transformValues) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122813,7 +122813,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122829,7 +122829,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122845,7 +122845,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122874,7 +122874,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122890,7 +122890,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform1(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122906,7 +122906,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform1ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform1(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122937,7 +122937,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122953,7 +122953,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -122969,7 +122969,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123001,7 +123001,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123017,7 +123017,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform2(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123033,7 +123033,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform2ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform2(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123067,7 +123067,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123083,7 +123083,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123099,7 +123099,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123134,7 +123134,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123150,7 +123150,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform3(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123166,7 +123166,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform3ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform3(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123203,7 +123203,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123219,7 +123219,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123235,7 +123235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123273,7 +123273,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123289,7 +123289,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform4(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: AMD_gpu_shader_int64|NV_gpu_shader5]
             /// Specify the value of a uniform variable for the current program object
@@ -123305,7 +123305,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "AMD_gpu_shader_int64|NV_gpu_shader5", Version = "", EntryPoint = "glUniform4ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform4(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123327,7 +123327,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123335,7 +123335,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123343,7 +123343,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123351,7 +123351,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123359,7 +123359,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -123367,7 +123367,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "NV_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123409,7 +123409,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123425,7 +123425,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123441,7 +123441,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123457,7 +123457,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123473,7 +123473,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static void Uniform(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_shader_buffer_load]
             /// Specify the value of a uniform variable for the current program object
@@ -123489,7 +123489,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_shader_buffer_load", Version = "", EntryPoint = "glUniformui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void Uniform(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void Uniform(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUFiniNV")]
@@ -123503,7 +123503,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUGetSurfaceivNV")]
             [CLSCompliant(false)]
-            public static void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="surface"></param>
@@ -123513,7 +123513,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUGetSurfaceivNV")]
             [CLSCompliant(false)]
-            public static void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="surface"></param>
@@ -123523,7 +123523,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUGetSurfaceivNV")]
             [CLSCompliant(false)]
-            public static unsafe void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpDevice"></param>
@@ -123580,21 +123580,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="surfaces">[length: numSurfaces]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUMapSurfacesNV")]
             [CLSCompliant(false)]
-            public static void VDPAUMapSurfaces(Int32 numSurfaces, IntPtr[] surfaces) { throw new NotImplementedException(); }
+            public static void VDPAUMapSurfaces(Int32 numSurfaces, [CountAttribute(Parameter = "numSurfaces")] IntPtr[] surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="numSurfaces"></param>
             /// <param name="surfaces">[length: numSurfaces]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUMapSurfacesNV")]
             [CLSCompliant(false)]
-            public static void VDPAUMapSurfaces(Int32 numSurfaces, ref IntPtr surfaces) { throw new NotImplementedException(); }
+            public static void VDPAUMapSurfaces(Int32 numSurfaces, [CountAttribute(Parameter = "numSurfaces")] ref IntPtr surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="numSurfaces"></param>
             /// <param name="surfaces">[length: numSurfaces]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUMapSurfacesNV")]
             [CLSCompliant(false)]
-            public static unsafe void VDPAUMapSurfaces(Int32 numSurfaces, IntPtr* surfaces) { throw new NotImplementedException(); }
+            public static unsafe void VDPAUMapSurfaces(Int32 numSurfaces, [CountAttribute(Parameter = "numSurfaces")] IntPtr* surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123603,7 +123603,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123612,7 +123612,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123621,7 +123621,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames) { throw new NotImplementedException(); }
+            public static unsafe IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123630,7 +123630,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123639,7 +123639,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123648,7 +123648,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames) { throw new NotImplementedException(); }
+            public static unsafe IntPtr VDPAURegisterOutputSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123657,7 +123657,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123668,7 +123668,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123679,7 +123679,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123690,7 +123690,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123701,7 +123701,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123712,7 +123712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123723,7 +123723,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123734,7 +123734,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123745,7 +123745,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123756,7 +123756,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123767,7 +123767,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123778,7 +123778,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123789,7 +123789,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123800,7 +123800,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123811,7 +123811,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123822,7 +123822,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123833,7 +123833,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123844,7 +123844,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123855,7 +123855,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123866,7 +123866,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123877,7 +123877,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123888,7 +123888,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123899,7 +123899,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123910,7 +123910,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123921,7 +123921,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123930,7 +123930,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123939,7 +123939,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames) { throw new NotImplementedException(); }
+            public static unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123948,7 +123948,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123957,7 +123957,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames) { throw new NotImplementedException(); }
+            public static IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123966,7 +123966,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames) { throw new NotImplementedException(); }
+            public static unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="vdpSurface"></param>
@@ -123975,7 +123975,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123986,7 +123986,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -123997,7 +123997,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124008,7 +124008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124019,7 +124019,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124030,7 +124030,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124041,7 +124041,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124052,7 +124052,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124063,7 +124063,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124074,7 +124074,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124085,7 +124085,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124096,7 +124096,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124107,7 +124107,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124118,7 +124118,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124129,7 +124129,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124140,7 +124140,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124151,7 +124151,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124162,7 +124162,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124173,7 +124173,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124184,7 +124184,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref Int32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124195,7 +124195,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] Int32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124206,7 +124206,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32[] textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124217,7 +124217,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
+            public static IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] ref UInt32 textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124228,7 +124228,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="textureNames">[length: numTextureNames]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
             [CLSCompliant(false)]
-            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
+            public static unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -124243,21 +124243,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="surfaces">[length: numSurface]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUUnmapSurfacesNV")]
             [CLSCompliant(false)]
-            public static void VDPAUUnmapSurfaces(Int32 numSurface, IntPtr[] surfaces) { throw new NotImplementedException(); }
+            public static void VDPAUUnmapSurfaces(Int32 numSurface, [CountAttribute(Parameter = "numSurface")] IntPtr[] surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="numSurface"></param>
             /// <param name="surfaces">[length: numSurface]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUUnmapSurfacesNV")]
             [CLSCompliant(false)]
-            public static void VDPAUUnmapSurfaces(Int32 numSurface, ref IntPtr surfaces) { throw new NotImplementedException(); }
+            public static void VDPAUUnmapSurfaces(Int32 numSurface, [CountAttribute(Parameter = "numSurface")] ref IntPtr surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="numSurface"></param>
             /// <param name="surfaces">[length: numSurface]</param>
             [AutoGenerated(Category = "NV_vdpau_interop", Version = "", EntryPoint = "glVDPAUUnmapSurfacesNV")]
             [CLSCompliant(false)]
-            public static unsafe void VDPAUUnmapSurfaces(Int32 numSurface, IntPtr* surfaces) { throw new NotImplementedException(); }
+            public static unsafe void VDPAUUnmapSurfaces(Int32 numSurface, [CountAttribute(Parameter = "numSurface")] IntPtr* surfaces) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vdpau_interop]</summary>
             /// <param name="surface"></param>
@@ -124274,19 +124274,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex2hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex2h(Half[] v) { throw new NotImplementedException(); }
+            public static void Vertex2h([CountAttribute(Count = 2)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex2hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex2h(ref Half v) { throw new NotImplementedException(); }
+            public static void Vertex2h([CountAttribute(Count = 2)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2h([CountAttribute(Count = 2)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="x"></param>
@@ -124299,19 +124299,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex3hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex3h(Half[] v) { throw new NotImplementedException(); }
+            public static void Vertex3h([CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex3hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex3h(ref Half v) { throw new NotImplementedException(); }
+            public static void Vertex3h([CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3h([CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="x"></param>
@@ -124325,58 +124325,58 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex4hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex4h(Half[] v) { throw new NotImplementedException(); }
+            public static void Vertex4h([CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex4hvNV")]
             [CLSCompliant(false)]
-            public static void Vertex4h(ref Half v) { throw new NotImplementedException(); }
+            public static void Vertex4h([CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertex4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4h(Half* v) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4h([CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_array_range]</summary>
             /// <param name="length"></param>
-            /// <param name="pointer">[length: length]</param>
+            /// <param name="pointer">[length: COMPSIZE(length)]</param>
             [AutoGenerated(Category = "NV_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeNV")]
-            public static void VertexArrayRange(Int32 length, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexArrayRange(Int32 length, [CountAttribute(Computed = "length")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_array_range]</summary>
             /// <param name="length"></param>
-            /// <param name="pointer">[length: length]</param>
+            /// <param name="pointer">[length: COMPSIZE(length)]</param>
             [AutoGenerated(Category = "NV_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeNV")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Computed = "length")] T1[] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_array_range]</summary>
             /// <param name="length"></param>
-            /// <param name="pointer">[length: length]</param>
+            /// <param name="pointer">[length: COMPSIZE(length)]</param>
             [AutoGenerated(Category = "NV_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeNV")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Computed = "length")] T1[,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_array_range]</summary>
             /// <param name="length"></param>
-            /// <param name="pointer">[length: length]</param>
+            /// <param name="pointer">[length: COMPSIZE(length)]</param>
             [AutoGenerated(Category = "NV_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeNV")]
             [CLSCompliant(false)]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] T1[,,] pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Computed = "length")] T1[,,] pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_array_range]</summary>
             /// <param name="length"></param>
-            /// <param name="pointer">[length: length]</param>
+            /// <param name="pointer">[length: COMPSIZE(length)]</param>
             [AutoGenerated(Category = "NV_vertex_array_range", Version = "", EntryPoint = "glVertexArrayRangeNV")]
-            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] ref T1 pointer)
+            public static void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute, CountAttribute(Computed = "length")] ref T1 pointer)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -124417,7 +124417,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124430,7 +124430,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124469,7 +124469,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124482,7 +124482,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -124503,14 +124503,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1h(Int32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1h(Int32 index, [CountAttribute(Count = 1)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1h(UInt32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1h(UInt32 index, [CountAttribute(Count = 1)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124549,7 +124549,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124562,7 +124562,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib1svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib1(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124607,7 +124607,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124620,7 +124620,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124633,7 +124633,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124646,7 +124646,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124659,7 +124659,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124672,7 +124672,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124717,7 +124717,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124730,7 +124730,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124743,7 +124743,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124756,7 +124756,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124769,7 +124769,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124782,7 +124782,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -124805,42 +124805,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2h(Int32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2h(Int32 index, [CountAttribute(Count = 2)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2h(Int32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2h(Int32 index, [CountAttribute(Count = 2)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2h(Int32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2h(Int32 index, [CountAttribute(Count = 2)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2h(UInt32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2h(UInt32 index, [CountAttribute(Count = 2)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2h(UInt32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2h(UInt32 index, [CountAttribute(Count = 2)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2h(UInt32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2h(UInt32 index, [CountAttribute(Count = 2)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124885,7 +124885,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124898,7 +124898,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124911,7 +124911,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124924,7 +124924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124937,7 +124937,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib2(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -124950,7 +124950,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib2svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib2(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125001,7 +125001,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125014,7 +125014,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125027,7 +125027,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125040,7 +125040,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125053,7 +125053,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125066,7 +125066,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125117,7 +125117,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125130,7 +125130,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125143,7 +125143,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125156,7 +125156,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125169,7 +125169,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125182,7 +125182,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -125207,42 +125207,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3h(Int32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3h(Int32 index, [CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3h(Int32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3h(Int32 index, [CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3h(Int32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3h(Int32 index, [CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3h(UInt32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3h(UInt32 index, [CountAttribute(Count = 3)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3h(UInt32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3h(UInt32 index, [CountAttribute(Count = 3)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3h(UInt32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3h(UInt32 index, [CountAttribute(Count = 3)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125293,7 +125293,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125306,7 +125306,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125319,7 +125319,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125332,7 +125332,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125345,7 +125345,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib3(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125358,7 +125358,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib3svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib3(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125415,7 +125415,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125428,7 +125428,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125441,7 +125441,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125454,7 +125454,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125467,7 +125467,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125480,7 +125480,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125537,7 +125537,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125550,7 +125550,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125563,7 +125563,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125576,7 +125576,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125589,7 +125589,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125602,7 +125602,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -125629,42 +125629,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4h(Int32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4h(Int32 index, [CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4h(Int32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4h(Int32 index, [CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4h(Int32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4h(Int32 index, [CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4h(UInt32 index, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4h(UInt32 index, [CountAttribute(Count = 4)] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4h(UInt32 index, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4h(UInt32 index, [CountAttribute(Count = 4)] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttrib4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4h(UInt32 index, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4h(UInt32 index, [CountAttribute(Count = 4)] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125721,7 +125721,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125734,7 +125734,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125747,7 +125747,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125760,7 +125760,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125773,7 +125773,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125786,7 +125786,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125843,7 +125843,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125856,7 +125856,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125869,7 +125869,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125882,7 +125882,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125895,7 +125895,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttrib4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Specifies the value of a generic vertex attribute
@@ -125908,7 +125908,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttrib4ubvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttrib4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]
             /// Specify the organization of vertex arrays
@@ -125991,14 +125991,14 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL1i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL1(Int32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL1(Int32 index, [CountAttribute(Count = 1)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL1i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL1(UInt32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL1(UInt32 index, [CountAttribute(Count = 1)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126012,7 +126012,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 1]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL1ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL1(UInt32 index, UInt64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL1(UInt32 index, [CountAttribute(Count = 1)] UInt64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126035,42 +126035,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(Int32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(Int32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL2(Int32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL2(UInt32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126085,21 +126085,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, UInt64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] UInt64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL2(UInt32 index, ref UInt64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] ref UInt64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL2ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL2(UInt32 index, UInt64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] UInt64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126124,42 +126124,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(Int32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(Int32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL3(Int32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL3(UInt32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126175,21 +126175,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, UInt64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] UInt64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL3(UInt32 index, ref UInt64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] ref UInt64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL3ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL3(UInt32 index, UInt64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] UInt64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126216,42 +126216,42 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(Int32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(Int32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL4(Int32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, Int64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Int64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, ref Int64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] ref Int64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4i64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL4(UInt32 index, Int64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Int64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126268,21 +126268,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, UInt64[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] UInt64[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4ui64vNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribL4(UInt32 index, ref UInt64 v) { throw new NotImplementedException(); }
+            public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] ref UInt64 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "", EntryPoint = "glVertexAttribL4ui64vNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribL4(UInt32 index, UInt64* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] UInt64* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
             /// <param name="index"></param>
@@ -126317,12 +126317,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribPointer(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [CountAttribute(Computed = "fsize,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Define an array of generic vertex attribute data
@@ -126339,12 +126339,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126363,12 +126363,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126387,12 +126387,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126411,12 +126411,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126435,12 +126435,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void VertexAttribPointer(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [CountAttribute(Computed = "fsize,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]
             /// Define an array of generic vertex attribute data
@@ -126457,12 +126457,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126481,12 +126481,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126505,12 +126505,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] T4[,,] pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126529,12 +126529,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="stride">
             /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
             /// </param>
-            /// <param name="pointer">[length: fsize,type,stride]
+            /// <param name="pointer">[length: COMPSIZE(fsize,type,stride)]
             /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
             /// </param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribPointerNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+            public static void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "fsize,type,stride")] ref T4 pointer)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -126544,7 +126544,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126552,7 +126552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126560,7 +126560,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(Int32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126568,7 +126568,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126576,7 +126576,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126584,7 +126584,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126592,7 +126592,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126600,7 +126600,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126608,7 +126608,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(Int32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126616,7 +126616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126624,7 +126624,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126632,7 +126632,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126640,7 +126640,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1h(Int32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126648,7 +126648,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1h(Int32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126656,7 +126656,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1h(Int32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126664,7 +126664,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1h(UInt32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126672,7 +126672,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1h(UInt32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126680,7 +126680,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs1hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1h(UInt32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126688,7 +126688,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126696,7 +126696,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(Int32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126704,7 +126704,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(Int32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(Int32 index, Int32 count, [CountAttribute(Parameter = "count")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126712,7 +126712,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126720,7 +126720,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs1(UInt32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126728,7 +126728,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs1svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs1(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126736,7 +126736,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126744,7 +126744,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126752,7 +126752,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(Int32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126760,7 +126760,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126768,7 +126768,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126776,7 +126776,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126784,7 +126784,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126792,7 +126792,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126800,7 +126800,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(Int32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126808,7 +126808,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126816,7 +126816,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126824,7 +126824,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126832,7 +126832,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2h(Int32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126840,7 +126840,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2h(Int32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126848,7 +126848,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2h(Int32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126856,7 +126856,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2h(UInt32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126864,7 +126864,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2h(UInt32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -126872,7 +126872,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs2hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2h(UInt32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126880,7 +126880,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126888,7 +126888,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(Int32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126896,7 +126896,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(Int32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(Int32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126904,7 +126904,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126912,7 +126912,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs2(UInt32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126920,7 +126920,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*2]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs2svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs2(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126928,7 +126928,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126936,7 +126936,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126944,7 +126944,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(Int32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126952,7 +126952,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126960,7 +126960,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126968,7 +126968,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126976,7 +126976,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126984,7 +126984,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -126992,7 +126992,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(Int32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127000,7 +127000,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127008,7 +127008,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127016,7 +127016,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127024,7 +127024,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3h(Int32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127032,7 +127032,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3h(Int32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127040,7 +127040,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3h(Int32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127048,7 +127048,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3h(UInt32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127056,7 +127056,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3h(UInt32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127064,7 +127064,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs3hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3h(UInt32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127072,7 +127072,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127080,7 +127080,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(Int32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127088,7 +127088,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(Int32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(Int32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127096,7 +127096,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127104,7 +127104,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs3(UInt32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127112,7 +127112,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*3]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs3svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs3(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127120,7 +127120,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127128,7 +127128,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127136,7 +127136,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(Int32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127144,7 +127144,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, Double[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127152,7 +127152,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, ref Double v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127160,7 +127160,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4dvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, Double* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127168,7 +127168,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127176,7 +127176,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127184,7 +127184,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(Int32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127192,7 +127192,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, Single[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127200,7 +127200,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, ref Single v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127208,7 +127208,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4fvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127216,7 +127216,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4h(Int32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127224,7 +127224,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4h(Int32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127232,7 +127232,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4h(Int32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4h(Int32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127240,7 +127240,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4h(UInt32 index, Int32 n, Half[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127248,7 +127248,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4h(UInt32 index, Int32 n, ref Half v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] ref Half v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_half_float]</summary>
             /// <param name="index"></param>
@@ -127256,7 +127256,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: n]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexAttribs4hvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4h(UInt32 index, Int32 n, Half* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4h(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127264,7 +127264,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127272,7 +127272,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127280,7 +127280,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(Int32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127288,7 +127288,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, Int16[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int16[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127296,7 +127296,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, ref Int16 v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int16 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127304,7 +127304,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4svNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, Int16* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int16* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127312,7 +127312,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127320,7 +127320,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(Int32 index, Int32 count, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127328,7 +127328,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(Int32 index, Int32 count, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(Int32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127336,7 +127336,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, Byte[] v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Byte[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127344,7 +127344,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static void VertexAttribs4(UInt32 index, Int32 count, ref Byte v) { throw new NotImplementedException(); }
+            public static void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] ref Byte v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_program]</summary>
             /// <param name="index"></param>
@@ -127352,7 +127352,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: count*4]</param>
             [AutoGenerated(Category = "NV_vertex_program", Version = "", EntryPoint = "glVertexAttribs4ubvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, Byte* v) { throw new NotImplementedException(); }
+            public static unsafe void VertexAttribs4(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Byte* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
             /// <param name="size"></param>
@@ -127370,7 +127370,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weight">[length: 1]</param>
             [AutoGenerated(Category = "NV_half_float", Version = "", EntryPoint = "glVertexWeighthvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VertexWeighth(Half* weight) { throw new NotImplementedException(); }
+            public static unsafe void VertexWeighth([CountAttribute(Count = 1)] Half* weight) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
@@ -127424,163 +127424,163 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Double @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Double @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_video_capture]</summary>
             /// <param name="video_capture_slot"></param>
             /// <param name="stream"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "NV_video_capture", Version = "", EntryPoint = "glVideoCaptureStreamParameterivNV")]
             [CLSCompliant(false)]
-            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127589,7 +127589,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static void WeightPath(Int32 resultPath, Int32 numPaths, Int32[] paths, Single[] weights) { throw new NotImplementedException(); }
+            public static void WeightPath(Int32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] Int32[] paths, [CountAttribute(Parameter = "numPaths")] Single[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127598,7 +127598,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static void WeightPath(Int32 resultPath, Int32 numPaths, ref Int32 paths, ref Single weights) { throw new NotImplementedException(); }
+            public static void WeightPath(Int32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] ref Int32 paths, [CountAttribute(Parameter = "numPaths")] ref Single weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127607,7 +127607,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static unsafe void WeightPath(Int32 resultPath, Int32 numPaths, Int32* paths, Single* weights) { throw new NotImplementedException(); }
+            public static unsafe void WeightPath(Int32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] Int32* paths, [CountAttribute(Parameter = "numPaths")] Single* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127616,7 +127616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static void WeightPath(UInt32 resultPath, Int32 numPaths, UInt32[] paths, Single[] weights) { throw new NotImplementedException(); }
+            public static void WeightPath(UInt32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] UInt32[] paths, [CountAttribute(Parameter = "numPaths")] Single[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127625,7 +127625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static void WeightPath(UInt32 resultPath, Int32 numPaths, ref UInt32 paths, ref Single weights) { throw new NotImplementedException(); }
+            public static void WeightPath(UInt32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] ref UInt32 paths, [CountAttribute(Parameter = "numPaths")] ref Single weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: NV_path_rendering]</summary>
             /// <param name="resultPath"></param>
@@ -127634,7 +127634,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: numPaths]</param>
             [AutoGenerated(Category = "NV_path_rendering", Version = "", EntryPoint = "glWeightPathsNV")]
             [CLSCompliant(false)]
-            public static unsafe void WeightPath(UInt32 resultPath, Int32 numPaths, UInt32* paths, Single* weights) { throw new NotImplementedException(); }
+            public static unsafe void WeightPath(UInt32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] UInt32* paths, [CountAttribute(Parameter = "numPaths")] Single* weights) { throw new NotImplementedException(); }
 
         }
 
@@ -127687,10 +127687,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte[] bitmap) { throw new NotImplementedException(); }
+            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte[] bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -127699,10 +127699,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, ref Byte bitmap) { throw new NotImplementedException(); }
+            public static void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] ref Byte bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -127711,10 +127711,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="yorig"></param>
             /// <param name="xmove"></param>
             /// <param name="ymove"></param>
-            /// <param name="bitmap">[length: width,height]</param>
+            /// <param name="bitmap">[length: COMPSIZE(width,height)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glBitmapxOES")]
             [CLSCompliant(false)]
-            public static unsafe void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte* bitmap) { throw new NotImplementedException(); }
+            public static unsafe void Bitmapx(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -127765,7 +127765,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, Single[] equation) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [CountAttribute(Count = 4)] Single[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify a plane against which all geometry is clipped
@@ -127778,7 +127778,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, ref Single equation) { throw new NotImplementedException(); }
+            public static void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [CountAttribute(Count = 4)] ref Single equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify a plane against which all geometry is clipped
@@ -127791,28 +127791,28 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glClipPlanefOES")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, Single* equation) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [CountAttribute(Count = 4)] Single* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, Int32[] equation) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, ref Int32 equation) { throw new NotImplementedException(); }
+            public static void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [CountAttribute(Count = 4)] ref Int32 equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glClipPlanexOES")]
             [CLSCompliant(false)]
-            public static unsafe void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, Int32* equation) { throw new NotImplementedException(); }
+            public static unsafe void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -127825,19 +127825,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static void Color3x(Int32[] components) { throw new NotImplementedException(); }
+            public static void Color3x([CountAttribute(Count = 3)] Int32[] components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static void Color3x(ref Int32 components) { throw new NotImplementedException(); }
+            public static void Color3x([CountAttribute(Count = 3)] ref Int32 components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Color3x(Int32* components) { throw new NotImplementedException(); }
+            public static unsafe void Color3x([CountAttribute(Count = 3)] Int32* components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="red"></param>
@@ -127851,19 +127851,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static void Color4x(Int32[] components) { throw new NotImplementedException(); }
+            public static void Color4x([CountAttribute(Count = 4)] Int32[] components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static void Color4x(ref Int32 components) { throw new NotImplementedException(); }
+            public static void Color4x([CountAttribute(Count = 4)] ref Int32 components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="components">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glColor4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Color4x(Int32* components) { throw new NotImplementedException(); }
+            public static unsafe void Color4x([CountAttribute(Count = 4)] Int32* components) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -127875,18 +127875,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Specify mapping of depth values from normalized device coordinates to window coordinates
@@ -127915,7 +127915,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void EvalCoord1x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void EvalCoord1x([CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="u"></param>
@@ -127927,19 +127927,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void EvalCoord2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void EvalCoord2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void EvalCoord2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void EvalCoord2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glEvalCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void EvalCoord2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void EvalCoord2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -127947,7 +127947,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, Int32[] buffer) { throw new NotImplementedException(); }
+            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, [CountAttribute(Parameter = "n")] Int32[] buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -127955,7 +127955,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, ref Int32 buffer) { throw new NotImplementedException(); }
+            public static void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, [CountAttribute(Parameter = "n")] ref Int32 buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -127963,7 +127963,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFeedbackBufferxOES")]
             [CLSCompliant(false)]
-            public static unsafe void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, Int32* buffer) { throw new NotImplementedException(); }
+            public static unsafe void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, [CountAttribute(Parameter = "n")] Int32* buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
@@ -127973,17 +127973,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFogxvOES")]
             [CLSCompliant(false)]
-            public static void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glFogxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Multiply the current matrix by a perspective matrix
@@ -128030,7 +128030,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] Single[] equation) { throw new NotImplementedException(); }
+            public static void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute, CountAttribute(Count = 4)] Single[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Return the coefficients of the specified clipping plane
@@ -128043,7 +128043,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] out Single equation) { throw new NotImplementedException(); }
+            public static void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute, CountAttribute(Count = 4)] out Single equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Return the coefficients of the specified clipping plane
@@ -128056,52 +128056,52 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_single_precision", Version = "", EntryPoint = "glGetClipPlanefOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] Single* equation) { throw new NotImplementedException(); }
+            public static unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] Int32[] equation) { throw new NotImplementedException(); }
+            public static void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute, CountAttribute(Count = 4)] Int32[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] out Int32 equation) { throw new NotImplementedException(); }
+            public static void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute, CountAttribute(Count = 4)] out Int32 equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="plane"></param>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetClipPlanexOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] Int32* equation) { throw new NotImplementedException(); }
+            public static unsafe void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetConvolutionParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
@@ -128111,96 +128111,96 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetFixedvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetHistogramParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetLightxOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] Int32[] v) { throw new NotImplementedException(); }
+            public static void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute, CountAttribute(Computed = "query")] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] out Int32 v) { throw new NotImplementedException(); }
+            public static void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute, CountAttribute(Computed = "query")] out Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="query"></param>
-            /// <param name="v">[length: query]</param>
+            /// <param name="v">[length: COMPSIZE(query)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMapxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute, CountAttribute(Computed = "query")] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
@@ -128212,117 +128212,117 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMaterialxvOES")]
             [CLSCompliant(false)]
-            public static void GetMaterialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetMaterialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetMaterialxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetMaterialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetMaterialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexGenxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="level"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexLevelParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glGetTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="component"></param>
@@ -128333,7 +128333,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="component">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glIndexxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Indexx(Int32* component) { throw new NotImplementedException(); }
+            public static unsafe void Indexx([CountAttribute(Count = 1)] Int32* component) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
@@ -128343,17 +128343,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightModelxvOES")]
             [CLSCompliant(false)]
-            public static void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightModelxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
@@ -128365,18 +128365,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightxvOES")]
             [CLSCompliant(false)]
-            public static void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLightxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="width"></param>
@@ -128387,37 +128387,37 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void LoadMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void LoadMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void LoadMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void LoadTransposeMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void LoadTransposeMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glLoadTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void LoadTransposeMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void LoadTransposeMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -128469,18 +128469,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMaterialxvOES")]
             [CLSCompliant(false)]
-            public static void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] param) { throw new NotImplementedException(); }
+            public static void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="param">[length: pname]</param>
+            /// <param name="param">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMaterialxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* param) { throw new NotImplementedException(); }
+            public static unsafe void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128519,7 +128519,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 1)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128532,7 +128532,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 1)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -128545,7 +128545,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord1x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord1x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128590,7 +128590,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128603,7 +128603,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128616,7 +128616,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128629,7 +128629,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128642,7 +128642,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128655,7 +128655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -128669,21 +128669,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128734,7 +128734,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128747,7 +128747,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128760,7 +128760,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128773,7 +128773,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128786,7 +128786,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128799,7 +128799,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -128814,21 +128814,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128885,7 +128885,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128898,7 +128898,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128911,7 +128911,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128924,7 +128924,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128937,7 +128937,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -128950,7 +128950,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glMultiTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, [CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
@@ -128966,57 +128966,57 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32[] coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref Int32 coords) { throw new NotImplementedException(); }
+            public static void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="texture"></param>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultiTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, [CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void MultMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void MultMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void MultMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrixx(Int32[] m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrixx([CountAttribute(Count = 16)] Int32[] m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static void MultTransposeMatrixx(ref Int32 m) { throw new NotImplementedException(); }
+            public static void MultTransposeMatrixx([CountAttribute(Count = 16)] ref Int32 m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="m">[length: 16]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glMultTransposeMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe void MultTransposeMatrixx(Int32* m) { throw new NotImplementedException(); }
+            public static unsafe void MultTransposeMatrixx([CountAttribute(Count = 16)] Int32* m) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="nx"></param>
@@ -129029,19 +129029,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static void Normal3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Normal3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static void Normal3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Normal3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glNormal3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Normal3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Normal3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_single_precision]
             /// Multiply the current matrix with an orthographic matrix
@@ -129102,17 +129102,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPointParameterxvOES")]
             [CLSCompliant(false)]
-            public static void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPointParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="size"></param>
@@ -129131,7 +129131,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, Int32[] textures, Int32[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures, [CountAttribute(Parameter = "n")] Int32[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -129139,7 +129139,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, ref Int32 textures, ref Int32 priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures, [CountAttribute(Parameter = "n")] ref Int32 priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -129147,7 +129147,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTexturesx(Int32 n, Int32* textures, Int32* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures, [CountAttribute(Parameter = "n")] Int32* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -129155,7 +129155,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, UInt32[] textures, Int32[] priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures, [CountAttribute(Parameter = "n")] Int32[] priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -129163,7 +129163,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static void PrioritizeTexturesx(Int32 n, ref UInt32 textures, ref Int32 priorities) { throw new NotImplementedException(); }
+            public static void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures, [CountAttribute(Parameter = "n")] ref Int32 priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="n"></param>
@@ -129171,28 +129171,28 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="priorities">[length: n]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glPrioritizeTexturesxOES")]
             [CLSCompliant(false)]
-            public static unsafe void PrioritizeTexturesx(Int32 n, UInt32* textures, Int32* priorities) { throw new NotImplementedException(); }
+            public static unsafe void PrioritizeTexturesx(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Int32* priorities) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static Int32 QueryMatrixx([OutAttribute] Int32[] mantissa, [OutAttribute] Int32[] exponent) { throw new NotImplementedException(); }
+            public static Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] Int32[] mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32[] exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static Int32 QueryMatrixx([OutAttribute] out Int32 mantissa, [OutAttribute] out Int32 exponent) { throw new NotImplementedException(); }
+            public static Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] out Int32 mantissa, [OutAttribute, CountAttribute(Count = 16)] out Int32 exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_query_matrix]</summary>
             /// <param name="mantissa">[length: 16]</param>
             /// <param name="exponent">[length: 16]</param>
             [AutoGenerated(Category = "OES_query_matrix", Version = "", EntryPoint = "glQueryMatrixxOES")]
             [CLSCompliant(false)]
-            public static unsafe Int32 QueryMatrixx([OutAttribute] Int32* mantissa, [OutAttribute] Int32* exponent) { throw new NotImplementedException(); }
+            public static unsafe Int32 QueryMatrixx([OutAttribute, CountAttribute(Count = 16)] Int32* mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32* exponent) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -129204,19 +129204,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -129229,19 +129229,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -129255,19 +129255,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void RasterPos4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static void RasterPos4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void RasterPos4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRasterPos4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void RasterPos4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void RasterPos4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x1"></param>
@@ -129282,21 +129282,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static void Rectx(Int32[] v1, Int32[] v2) { throw new NotImplementedException(); }
+            public static void Rectx([CountAttribute(Count = 2)] Int32[] v1, [CountAttribute(Count = 2)] Int32[] v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="v1">[length: 2]</param>
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static void Rectx(ref Int32 v1, ref Int32 v2) { throw new NotImplementedException(); }
+            public static void Rectx([CountAttribute(Count = 2)] ref Int32 v1, [CountAttribute(Count = 2)] ref Int32 v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="v1">[length: 2]</param>
             /// <param name="v2">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glRectxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Rectx(Int32* v1, Int32* v2) { throw new NotImplementedException(); }
+            public static unsafe void Rectx([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="angle"></param>
@@ -129359,7 +129359,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1([CountAttribute(Count = 1)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129369,7 +129369,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord1bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1([CountAttribute(Count = 1)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -129380,7 +129380,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 1]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord1xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord1x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord1x([CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129416,7 +129416,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129426,7 +129426,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129436,7 +129436,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2([CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129446,7 +129446,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129456,7 +129456,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord2([CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129466,7 +129466,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2([CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -129478,19 +129478,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord2x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord2x([CountAttribute(Count = 2)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129532,7 +129532,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129542,7 +129542,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129552,7 +129552,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3([CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129562,7 +129562,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129572,7 +129572,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord3([CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129582,7 +129582,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3([CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -129595,19 +129595,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129655,7 +129655,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(Byte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129665,7 +129665,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(ref Byte coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129675,7 +129675,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4([CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129685,7 +129685,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(SByte[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129695,7 +129695,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4(ref SByte coords) { throw new NotImplementedException(); }
+            public static void TexCoord4([CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Set the current texture coordinates
@@ -129705,7 +129705,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glTexCoord4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4([CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="s"></param>
@@ -129719,19 +129719,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void TexCoord4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static void TexCoord4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void TexCoord4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexCoord4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -129743,18 +129743,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexEnvxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
@@ -129766,18 +129766,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexGenxvOES")]
             [CLSCompliant(false)]
-            public static void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coord"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexGenxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
@@ -129789,18 +129789,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="target"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glTexParameterxvOES")]
             [CLSCompliant(false)]
-            public static unsafe void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -129843,7 +129843,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129853,7 +129853,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129863,7 +129863,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2([CountAttribute(Count = 2)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129873,7 +129873,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129883,7 +129883,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex2([CountAttribute(Count = 2)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129893,7 +129893,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex2bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2([CountAttribute(Count = 2)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -129904,13 +129904,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex2xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex2x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex2x([CountAttribute(Count = 2)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 2]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex2xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex2x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex2x([CountAttribute(Count = 2)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129952,7 +129952,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129962,7 +129962,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129972,7 +129972,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3([CountAttribute(Count = 3)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129982,7 +129982,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -129992,7 +129992,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex3([CountAttribute(Count = 3)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130002,7 +130002,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex3bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3([CountAttribute(Count = 3)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -130014,19 +130014,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex3x([CountAttribute(Count = 3)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex3x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Vertex3x([CountAttribute(Count = 3)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 3]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex3xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex3x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex3x([CountAttribute(Count = 3)] Int32* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130074,7 +130074,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(Byte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] Byte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130084,7 +130084,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(ref Byte coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] ref Byte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130094,7 +130094,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4(Byte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4([CountAttribute(Count = 4)] Byte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130104,7 +130104,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(SByte[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] SByte[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130114,7 +130114,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4(ref SByte coords) { throw new NotImplementedException(); }
+            public static void Vertex4([CountAttribute(Count = 4)] ref SByte coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_byte_coordinates]
             /// Specify a vertex
@@ -130124,7 +130124,7 @@ namespace OpenTK.Graphics.OpenGL
             /// </param>
             [AutoGenerated(Category = "OES_byte_coordinates", Version = "", EntryPoint = "glVertex4bvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4(SByte* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4([CountAttribute(Count = 4)] SByte* coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="x"></param>
@@ -130137,19 +130137,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4x(Int32[] coords) { throw new NotImplementedException(); }
+            public static void Vertex4x([CountAttribute(Count = 4)] Int32[] coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static void Vertex4x(ref Int32 coords) { throw new NotImplementedException(); }
+            public static void Vertex4x([CountAttribute(Count = 4)] ref Int32 coords) { throw new NotImplementedException(); }
 
             /// <summary>[requires: OES_fixed_point]</summary>
             /// <param name="coords">[length: 4]</param>
             [AutoGenerated(Category = "OES_fixed_point", Version = "", EntryPoint = "glVertex4xvOES")]
             [CLSCompliant(false)]
-            public static unsafe void Vertex4x(Int32* coords) { throw new NotImplementedException(); }
+            public static unsafe void Vertex4x([CountAttribute(Count = 4)] Int32* coords) { throw new NotImplementedException(); }
 
         }
 
@@ -130180,12 +130180,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130196,12 +130196,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130212,12 +130212,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130228,13 +130228,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130245,13 +130245,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, ref Single @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130262,13 +130262,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130279,12 +130279,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130295,12 +130295,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130311,12 +130311,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.ColorTableParameterPNameSgi pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130327,13 +130327,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130344,13 +130344,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, ref Int32 @params) { throw new NotImplementedException(); }
+            public static void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Set color lookup table parameters
@@ -130361,13 +130361,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameters are stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Define a color lookup table
@@ -130387,11 +130387,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
-            public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table) { throw new NotImplementedException(); }
+            public static void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Define a color lookup table
@@ -130411,12 +130411,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130438,12 +130438,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130465,12 +130465,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130492,11 +130492,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130518,12 +130518,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
-            public static void ColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table) { throw new NotImplementedException(); }
+            public static void ColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Define a color lookup table
@@ -130543,13 +130543,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130571,13 +130571,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130599,13 +130599,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
             [CLSCompliant(false)]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130627,12 +130627,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
             /// </param>
-            /// <param name="table">[length: format,type,width]
+            /// <param name="table">[length: COMPSIZE(format,type,width)]
             /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glColorTableSGI")]
-            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T5 table)
+            public static void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 table)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -130688,12 +130688,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130704,12 +130704,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130720,12 +130720,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130736,13 +130736,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130753,13 +130753,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130770,13 +130770,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterfvSGI")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130787,12 +130787,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130803,12 +130803,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130819,12 +130819,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.GetColorTableParameterPNameSgi pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130835,13 +130835,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130852,13 +130852,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Get color lookup table parameters
@@ -130869,13 +130869,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// A pointer to an array where the values of the parameter will be stored.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableParameterivSGI")]
             [CLSCompliant(false)]
-            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Retrieve contents of a color lookup table
@@ -130889,11 +130889,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
-            public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+            public static void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Retrieve contents of a color lookup table
@@ -130907,12 +130907,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -130928,12 +130928,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -130949,12 +130949,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -130970,11 +130970,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTargetSgi target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -130990,12 +130990,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
-            public static void GetColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+            public static void GetColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGI_color_table]
             /// Retrieve contents of a color lookup table
@@ -131009,13 +131009,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -131031,13 +131031,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -131053,13 +131053,13 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
             [CLSCompliant(false)]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -131075,12 +131075,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="type">
             /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
             /// </param>
-            /// <param name="table">[length: target,format,type]
+            /// <param name="table">[length: COMPSIZE(target,format,type)]
             /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
             /// </param>
             [Obsolete("Use ColorTableTargetSgi overload instead")]
             [AutoGenerated(Category = "SGI_color_table", Version = "", EntryPoint = "glGetColorTableSGI")]
-            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 table)
+            public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 table)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -131094,7 +131094,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single[] points) { throw new NotImplementedException(); }
+            public static void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
@@ -131102,7 +131102,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, ref Single points) { throw new NotImplementedException(); }
+            public static void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
@@ -131110,28 +131110,28 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
             /// <param name="n"></param>
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static void FogFunc(Int32 n, Single[] points) { throw new NotImplementedException(); }
+            public static void FogFunc(Int32 n, [CountAttribute(Parameter = "n*2")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
             /// <param name="n"></param>
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static void FogFunc(Int32 n, ref Single points) { throw new NotImplementedException(); }
+            public static void FogFunc(Int32 n, [CountAttribute(Parameter = "n*2")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
             /// <param name="n"></param>
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void FogFunc(Int32 n, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void FogFunc(Int32 n, [CountAttribute(Parameter = "n*2")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
@@ -131141,24 +131141,24 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glGetDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single[] points) { throw new NotImplementedException(); }
+            public static void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glGetDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] out Single points) { throw new NotImplementedException(); }
+            public static void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] out Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_detail_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_detail_texture", Version = "", EntryPoint = "glGetDetailTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single* points) { throw new NotImplementedException(); }
+            public static unsafe void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glGetFogFuncSGIS")]
@@ -131166,22 +131166,22 @@ namespace OpenTK.Graphics.OpenGL
             public static Single GetFogFunc() { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
-            /// <param name="points"></param>
+            /// <param name="points">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glGetFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetFogFunc([OutAttribute] Single[] points) { throw new NotImplementedException(); }
+            public static void GetFogFunc([OutAttribute, CountAttribute(Computed = "")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
-            /// <param name="points"></param>
+            /// <param name="points">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glGetFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetFogFunc([OutAttribute] out Single points) { throw new NotImplementedException(); }
+            public static void GetFogFunc([OutAttribute, CountAttribute(Computed = "")] out Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_fog_function]</summary>
-            /// <param name="points"></param>
+            /// <param name="points">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SGIS_fog_function", Version = "", EntryPoint = "glGetFogFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetFogFunc([OutAttribute] Single* points) { throw new NotImplementedException(); }
+            public static unsafe void GetFogFunc([OutAttribute, CountAttribute(Computed = "")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
@@ -131198,93 +131198,93 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
@@ -131294,48 +131294,48 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glGetSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single[] points) { throw new NotImplementedException(); }
+            public static void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glGetSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] out Single points) { throw new NotImplementedException(); }
+            public static void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] out Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
-            /// <param name="points">[length: target]</param>
+            /// <param name="points">[length: COMPSIZE(target)]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glGetSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single* points) { throw new NotImplementedException(); }
+            public static unsafe void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute, CountAttribute(Computed = "target")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
             /// <param name="filter"></param>
-            /// <param name="weights">[length: target,filter]</param>
+            /// <param name="weights">[length: COMPSIZE(target,filter)]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glGetTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] Single[] weights) { throw new NotImplementedException(); }
+            public static void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute, CountAttribute(Computed = "target,filter")] Single[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
             /// <param name="filter"></param>
-            /// <param name="weights">[length: target,filter]</param>
+            /// <param name="weights">[length: COMPSIZE(target,filter)]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glGetTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] out Single weights) { throw new NotImplementedException(); }
+            public static void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute, CountAttribute(Computed = "target,filter")] out Single weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
             /// <param name="filter"></param>
-            /// <param name="weights">[length: target,filter]</param>
+            /// <param name="weights">[length: COMPSIZE(target,filter)]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glGetTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] Single* weights) { throw new NotImplementedException(); }
+            public static unsafe void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute, CountAttribute(Computed = "target,filter")] Single* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
@@ -131352,33 +131352,33 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
@@ -131395,33 +131395,33 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.PixelTexGenParameterNameSgis pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_pixel_texture]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use PixelTexGenParameterNameSgis overload instead")]
             [AutoGenerated(Category = "SGIS_pixel_texture", Version = "", EntryPoint = "glPixelTexGenParameterivSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_point_parameters]
             /// Specify point parameters
@@ -131441,12 +131441,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "SGIS_point_parameters", Version = "", EntryPoint = "glPointParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_point_parameters]
             /// Specify point parameters
@@ -131454,12 +131454,12 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="pname">
             /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
             /// </param>
-            /// <param name="@params">[length: pname]
+            /// <param name="@params">[length: COMPSIZE(pname)]
             /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
             /// </param>
             [AutoGenerated(Category = "SGIS_point_parameters", Version = "", EntryPoint = "glPointParameterfvSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_multisample]</summary>
             /// <param name="value"></param>
@@ -131484,7 +131484,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single[] points) { throw new NotImplementedException(); }
+            public static void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
@@ -131492,7 +131492,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, ref Single points) { throw new NotImplementedException(); }
+            public static void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_sharpen_texture]</summary>
             /// <param name="target"></param>
@@ -131500,7 +131500,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="points">[length: n*2]</param>
             [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "", EntryPoint = "glSharpenTexFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, [CountAttribute(Parameter = "n*2")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
@@ -131509,7 +131509,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: n]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, Single[] weights) { throw new NotImplementedException(); }
+            public static void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, [CountAttribute(Parameter = "n")] Single[] weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
@@ -131518,7 +131518,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: n]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, ref Single weights) { throw new NotImplementedException(); }
+            public static void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, [CountAttribute(Parameter = "n")] ref Single weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture_filter4]</summary>
             /// <param name="target"></param>
@@ -131527,7 +131527,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="weights">[length: n]</param>
             [AutoGenerated(Category = "SGIS_texture_filter4", Version = "", EntryPoint = "glTexFilterFuncSGIS")]
             [CLSCompliant(false)]
-            public static unsafe void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, Single* weights) { throw new NotImplementedException(); }
+            public static unsafe void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, [CountAttribute(Parameter = "n")] Single* weights) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture4D]</summary>
             /// <param name="target"></param>
@@ -131540,9 +131540,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexImage4DSGIS")]
-            public static void TexImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth,size4d")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture4D]</summary>
             /// <param name="target"></param>
@@ -131555,10 +131555,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T10[] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -131573,10 +131573,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T10[,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -131591,10 +131591,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T10[,,] pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -131609,9 +131609,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="border"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexImage4DSGIS")]
-            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+            public static void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] ref T10 pixels)
                 where T10 : struct
              { throw new NotImplementedException(); }
 
@@ -131628,9 +131628,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size4d"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexSubImage4DSGIS")]
-            public static void TexSubImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+            public static void TexSubImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth,size4d")] IntPtr pixels) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIS_texture4D]</summary>
             /// <param name="target"></param>
@@ -131645,10 +131645,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size4d"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexSubImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[] pixels)
+            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T12[] pixels)
                 where T12 : struct
              { throw new NotImplementedException(); }
 
@@ -131665,10 +131665,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size4d"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexSubImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[,] pixels)
+            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T12[,] pixels)
                 where T12 : struct
              { throw new NotImplementedException(); }
 
@@ -131685,10 +131685,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size4d"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexSubImage4DSGIS")]
             [CLSCompliant(false)]
-            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[,,] pixels)
+            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] T12[,,] pixels)
                 where T12 : struct
              { throw new NotImplementedException(); }
 
@@ -131705,9 +131705,9 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="size4d"></param>
             /// <param name="format"></param>
             /// <param name="type"></param>
-            /// <param name="pixels">[length: format,type,width,height,depth,size4d]</param>
+            /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth,size4d)]</param>
             [AutoGenerated(Category = "SGIS_texture4D", Version = "", EntryPoint = "glTexSubImage4DSGIS")]
-            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T12 pixels)
+            public static void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth,size4d")] ref T12 pixels)
                 where T12 : struct
              { throw new NotImplementedException(); }
 
@@ -131749,10 +131749,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double[] points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131768,10 +131768,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, ref Double points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131787,10 +131787,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131806,11 +131806,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double[] points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Double[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131826,11 +131826,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, ref Double points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] ref Double points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131846,11 +131846,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3dSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double* points) { throw new NotImplementedException(); }
+            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Double* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131866,10 +131866,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single[] points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131885,10 +131885,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, ref Single points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131904,10 +131904,10 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.FfdTargetSgix target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131923,11 +131923,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single[] points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Single[] points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131943,11 +131943,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, ref Single points) { throw new NotImplementedException(); }
+            public static void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] ref Single points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="target"></param>
@@ -131963,11 +131963,11 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="w2"></param>
             /// <param name="wstride"></param>
             /// <param name="worder"></param>
-            /// <param name="points">[length: target,ustride,uorder,vstride,vorder,wstride,worder]</param>
+            /// <param name="points">[length: COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)]</param>
             [Obsolete("Use FfdTargetSgix overload instead")]
             [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "", EntryPoint = "glDeformationMap3fSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single* points) { throw new NotImplementedException(); }
+            public static unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.SgixPolynomialFfd target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Single* points) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="mask"></param>
@@ -132005,25 +132005,25 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glFinishAsyncSGIX")]
             [CLSCompliant(false)]
-            public static Int32 FinishAsync([OutAttribute] out Int32 markerp) { throw new NotImplementedException(); }
+            public static Int32 FinishAsync([OutAttribute, CountAttribute(Count = 1)] out Int32 markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glFinishAsyncSGIX")]
             [CLSCompliant(false)]
-            public static unsafe Int32 FinishAsync([OutAttribute] Int32* markerp) { throw new NotImplementedException(); }
+            public static unsafe Int32 FinishAsync([OutAttribute, CountAttribute(Count = 1)] Int32* markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glFinishAsyncSGIX")]
             [CLSCompliant(false)]
-            public static Int32 FinishAsync([OutAttribute] out UInt32 markerp) { throw new NotImplementedException(); }
+            public static Int32 FinishAsync([OutAttribute, CountAttribute(Count = 1)] out UInt32 markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glFinishAsyncSGIX")]
             [CLSCompliant(false)]
-            public static unsafe Int32 FinishAsync([OutAttribute] UInt32* markerp) { throw new NotImplementedException(); }
+            public static unsafe Int32 FinishAsync([OutAttribute, CountAttribute(Count = 1)] UInt32* markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_flush_raster]</summary>
             [AutoGenerated(Category = "SGIX_flush_raster", Version = "", EntryPoint = "glFlushRasterSGIX")]
@@ -132045,18 +132045,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightfvSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
@@ -132068,18 +132068,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightivSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
@@ -132096,33 +132096,33 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelfvSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use FragmentLightModelParameterSgix overload instead")]
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelfvSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use FragmentLightModelParameterSgix overload instead")]
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
@@ -132139,33 +132139,33 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelivSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.FragmentLightModelParameterSgix pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use FragmentLightModelParameterSgix overload instead")]
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelivSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use FragmentLightModelParameterSgix overload instead")]
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentLightModelivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
@@ -132177,18 +132177,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentMaterialfvSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentMaterialfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
@@ -132200,18 +132200,18 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentMaterialivSGIX")]
             [CLSCompliant(false)]
-            public static void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glFragmentMaterialivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_framezoom]</summary>
             /// <param name="factor"></param>
@@ -132226,98 +132226,98 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightivSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightivSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="light"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentLightivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialivSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialivSGIX")]
             [CLSCompliant(false)]
-            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_fragment_lighting]</summary>
             /// <param name="face"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "", EntryPoint = "glGetFragmentMaterialivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glGetInstrumentsSGIX")]
@@ -132326,183 +132326,183 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glGetListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use SgixIglooInterface overload instead")]
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
-            public static void IglooInterface(OpenTK.Graphics.OpenGL.All pname, IntPtr @params) { throw new NotImplementedException(); }
+            public static void IglooInterface(OpenTK.Graphics.OpenGL.All pname, [CountAttribute(Computed = "pname")] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use SgixIglooInterface overload instead")]
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use SgixIglooInterface overload instead")]
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[,] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use SgixIglooInterface overload instead")]
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[,,] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[,,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [Obsolete("Use SgixIglooInterface overload instead")]
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] ref T1 @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T1 @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
-            public static void IglooInterface(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, IntPtr @params) { throw new NotImplementedException(); }
+            public static void IglooInterface(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [CountAttribute(Computed = "pname")] IntPtr @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute] T1[] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute] T1[,] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
             [CLSCompliant(false)]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute] T1[,,] @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] T1[,,] @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_igloo_interface]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_igloo_interface", Version = "", EntryPoint = "glIglooInterfaceSGIX")]
-            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute] ref T1 @params)
+            public static void IglooInterface<T1>(OpenTK.Graphics.OpenGL.SgixIglooInterface pname, [InAttribute, OutAttribute, CountAttribute(Computed = "pname")] ref T1 @params)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -132511,21 +132511,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="buffer">[length: size]</param>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glInstrumentsBufferSGIX")]
             [CLSCompliant(false)]
-            public static void InstrumentsBuffer(Int32 size, [OutAttribute] Int32[] buffer) { throw new NotImplementedException(); }
+            public static void InstrumentsBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32[] buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             /// <param name="size"></param>
             /// <param name="buffer">[length: size]</param>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glInstrumentsBufferSGIX")]
             [CLSCompliant(false)]
-            public static void InstrumentsBuffer(Int32 size, [OutAttribute] out Int32 buffer) { throw new NotImplementedException(); }
+            public static void InstrumentsBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] out Int32 buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             /// <param name="size"></param>
             /// <param name="buffer">[length: size]</param>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glInstrumentsBufferSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void InstrumentsBuffer(Int32 size, [OutAttribute] Int32* buffer) { throw new NotImplementedException(); }
+            public static unsafe void InstrumentsBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* buffer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="marker"></param>
@@ -132571,34 +132571,34 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
@@ -132619,34 +132619,34 @@ namespace OpenTK.Graphics.OpenGL
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_list_priority]</summary>
             /// <param name="list"></param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_list_priority", Version = "", EntryPoint = "glListParameterivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_polynomial_ffd]</summary>
             /// <param name="mask"></param>
@@ -132675,37 +132675,37 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glPollAsyncSGIX")]
             [CLSCompliant(false)]
-            public static Int32 PollAsync([OutAttribute] out Int32 markerp) { throw new NotImplementedException(); }
+            public static Int32 PollAsync([OutAttribute, CountAttribute(Count = 1)] out Int32 markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glPollAsyncSGIX")]
             [CLSCompliant(false)]
-            public static unsafe Int32 PollAsync([OutAttribute] Int32* markerp) { throw new NotImplementedException(); }
+            public static unsafe Int32 PollAsync([OutAttribute, CountAttribute(Count = 1)] Int32* markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glPollAsyncSGIX")]
             [CLSCompliant(false)]
-            public static Int32 PollAsync([OutAttribute] out UInt32 markerp) { throw new NotImplementedException(); }
+            public static Int32 PollAsync([OutAttribute, CountAttribute(Count = 1)] out UInt32 markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_async]</summary>
             /// <param name="markerp">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_async", Version = "", EntryPoint = "glPollAsyncSGIX")]
             [CLSCompliant(false)]
-            public static unsafe Int32 PollAsync([OutAttribute] UInt32* markerp) { throw new NotImplementedException(); }
+            public static unsafe Int32 PollAsync([OutAttribute, CountAttribute(Count = 1)] UInt32* markerp) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             /// <param name="marker_p">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glPollInstrumentsSGIX")]
             [CLSCompliant(false)]
-            public static Int32 PollInstruments([OutAttribute] out Int32 marker_p) { throw new NotImplementedException(); }
+            public static Int32 PollInstruments([OutAttribute, CountAttribute(Count = 1)] out Int32 marker_p) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             /// <param name="marker_p">[length: 1]</param>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glPollInstrumentsSGIX")]
             [CLSCompliant(false)]
-            public static unsafe Int32 PollInstruments([OutAttribute] Int32* marker_p) { throw new NotImplementedException(); }
+            public static unsafe Int32 PollInstruments([OutAttribute, CountAttribute(Count = 1)] Int32* marker_p) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             /// <param name="marker"></param>
@@ -132716,19 +132716,19 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "SGIX_reference_plane", Version = "", EntryPoint = "glReferencePlaneSGIX")]
             [CLSCompliant(false)]
-            public static void ReferencePlane(Double[] equation) { throw new NotImplementedException(); }
+            public static void ReferencePlane([CountAttribute(Count = 4)] Double[] equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_reference_plane]</summary>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "SGIX_reference_plane", Version = "", EntryPoint = "glReferencePlaneSGIX")]
             [CLSCompliant(false)]
-            public static void ReferencePlane(ref Double equation) { throw new NotImplementedException(); }
+            public static void ReferencePlane([CountAttribute(Count = 4)] ref Double equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_reference_plane]</summary>
             /// <param name="equation">[length: 4]</param>
             [AutoGenerated(Category = "SGIX_reference_plane", Version = "", EntryPoint = "glReferencePlaneSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void ReferencePlane(Double* equation) { throw new NotImplementedException(); }
+            public static unsafe void ReferencePlane([CountAttribute(Count = 4)] Double* equation) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
@@ -132738,17 +132738,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_sprite", Version = "", EntryPoint = "glSpriteParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Single[] @params) { throw new NotImplementedException(); }
+            public static void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_sprite", Version = "", EntryPoint = "glSpriteParameterfvSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
@@ -132758,17 +132758,17 @@ namespace OpenTK.Graphics.OpenGL
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_sprite", Version = "", EntryPoint = "glSpriteParameterivSGIX")]
             [CLSCompliant(false)]
-            public static void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Int32[] @params) { throw new NotImplementedException(); }
+            public static void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_sprite]</summary>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "SGIX_sprite", Version = "", EntryPoint = "glSpriteParameterivSGIX")]
             [CLSCompliant(false)]
-            public static unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SGIX_instruments]</summary>
             [AutoGenerated(Category = "SGIX_instruments", Version = "", EntryPoint = "glStartInstrumentsSGIX")]
@@ -132802,21 +132802,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color3fVertex3(Single[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void Color3fVertex3([CountAttribute(Count = 3)] Single[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 3]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color3fVertex3(ref Single c, ref Single v) { throw new NotImplementedException(); }
+            public static void Color3fVertex3([CountAttribute(Count = 3)] ref Single c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 3]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void Color3fVertex3(Single* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Color3fVertex3([CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="r"></param>
@@ -132838,7 +132838,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4fNormal3fVertex3(Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void Color4fNormal3fVertex3([CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
@@ -132846,7 +132846,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4fNormal3fVertex3(ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void Color4fNormal3fVertex3([CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
@@ -132854,7 +132854,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void Color4fNormal3fVertex3(Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Color4fNormal3fVertex3([CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="r"></param>
@@ -132871,21 +132871,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex2fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4ubVertex2(Byte[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void Color4ubVertex2([CountAttribute(Count = 4)] Byte[] c, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex2fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4ubVertex2(ref Byte c, ref Single v) { throw new NotImplementedException(); }
+            public static void Color4ubVertex2([CountAttribute(Count = 4)] ref Byte c, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
             /// <param name="v">[length: 2]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex2fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void Color4ubVertex2(Byte* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Color4ubVertex2([CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="r"></param>
@@ -132903,21 +132903,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4ubVertex3(Byte[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void Color4ubVertex3([CountAttribute(Count = 4)] Byte[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Color4ubVertex3(ref Byte c, ref Single v) { throw new NotImplementedException(); }
+            public static void Color4ubVertex3([CountAttribute(Count = 4)] ref Byte c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="c">[length: 4]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void Color4ubVertex3(Byte* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Color4ubVertex3([CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_mesh_array]</summary>
             /// <param name="mode"></param>
@@ -133000,65 +133000,65 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Normal3fVertex3(Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void Normal3fVertex3([CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="n">[length: 3]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void Normal3fVertex3(ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void Normal3fVertex3([CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="n">[length: 3]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void Normal3fVertex3(Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void Normal3fVertex3([CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodePointerSUN")]
-            public static void ReplacementCodePointer(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+            public static void ReplacementCodePointer(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodePointerSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
+            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodePointerSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
+            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodePointerSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
+            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] T2[,,] pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="type"></param>
             /// <param name="stride"></param>
-            /// <param name="pointer">[length: type,stride]</param>
+            /// <param name="pointer">[length: COMPSIZE(type,stride)]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodePointerSUN")]
-            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] ref T2 pointer)
+            public static void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "type,stride")] ref T2 pointer)
                 where T2 : struct
              { throw new NotImplementedException(); }
 
@@ -133068,16 +133068,16 @@ namespace OpenTK.Graphics.OpenGL
             public static void ReplacementCode(Byte code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeubvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCode(Byte[] code) { throw new NotImplementedException(); }
+            public static void ReplacementCode([CountAttribute(Computed = "")] Byte[] code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeubvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCode(Byte* code) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCode([CountAttribute(Computed = "")] Byte* code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133109,7 +133109,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor3fVertex3(ref Int32 rc, Single[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] Single[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133117,7 +133117,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor3fVertex3(ref Int32 rc, ref Single c, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] ref Single c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133125,7 +133125,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor3fVertex3(Int32* rc, Single* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133133,7 +133133,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor3fVertex3(ref UInt32 rc, Single[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] Single[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133141,7 +133141,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor3fVertex3(ref UInt32 rc, ref Single c, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] ref Single c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133149,7 +133149,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor3fVertex3(UInt32* rc, Single* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor3fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133190,7 +133190,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4fNormal3fVertex3(ref Int32 rc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133199,7 +133199,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4fNormal3fVertex3(ref Int32 rc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133208,7 +133208,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor4fNormal3fVertex3(Int32* rc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133217,7 +133217,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4fNormal3fVertex3(ref UInt32 rc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133226,7 +133226,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4fNormal3fVertex3(ref UInt32 rc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133235,7 +133235,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor4fNormal3fVertex3(UInt32* rc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor4fNormal3fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133269,7 +133269,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4ubVertex3(ref Int32 rc, Byte[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 4)] Byte[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133277,7 +133277,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4ubVertex3(ref Int32 rc, ref Byte c, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 4)] ref Byte c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133285,7 +133285,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor4ubVertex3(Int32* rc, Byte* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133293,7 +133293,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4ubVertex3(ref UInt32 rc, Byte[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 4)] Byte[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133301,7 +133301,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiColor4ubVertex3(ref UInt32 rc, ref Byte c, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 4)] ref Byte c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133309,7 +133309,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiColor4ubVertex3(UInt32* rc, Byte* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiColor4ubVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133341,7 +133341,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiNormal3fVertex3(ref Int32 rc, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133349,7 +133349,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiNormal3fVertex3(ref Int32 rc, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133357,7 +133357,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiNormal3fVertex3(Int32* rc, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133365,7 +133365,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiNormal3fVertex3(ref UInt32 rc, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133373,7 +133373,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiNormal3fVertex3(ref UInt32 rc, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133381,7 +133381,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiNormal3fVertex3(UInt32* rc, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiNormal3fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="code"></param>
@@ -133439,7 +133439,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref Int32 rc, Single[] tc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133449,7 +133449,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref Int32 rc, ref Single tc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133459,7 +133459,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(Int32* rc, Single* tc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133469,7 +133469,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref UInt32 rc, Single[] tc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133479,7 +133479,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref UInt32 rc, ref Single tc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133489,7 +133489,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(UInt32* rc, Single* tc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133526,7 +133526,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref Int32 rc, Single[] tc, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133535,7 +133535,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref Int32 rc, ref Single tc, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133544,7 +133544,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(Int32* rc, Single* tc, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133553,7 +133553,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref UInt32 rc, Single[] tc, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133562,7 +133562,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref UInt32 rc, ref Single tc, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133571,7 +133571,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3(UInt32* rc, Single* tc, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fNormal3fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133601,7 +133601,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fVertex3(ref Int32 rc, Single[] tc, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133609,7 +133609,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fVertex3(ref Int32 rc, ref Single tc, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133617,7 +133617,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fVertex3(Int32* rc, Single* tc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133625,7 +133625,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fVertex3(ref UInt32 rc, Single[] tc, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133633,7 +133633,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiTexCoord2fVertex3(ref UInt32 rc, ref Single tc, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
@@ -133641,7 +133641,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiTexCoord2fVertex3(UInt32* rc, Single* tc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiTexCoord2fVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc"></param>
@@ -133666,66 +133666,66 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiVertex3(ref Int32 rc, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiVertex3(ref Int32 rc, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] ref Int32 rc, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiVertex3(Int32* rc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] Int32* rc, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiVertex3(ref UInt32 rc, Single[] v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCodeuiVertex3(ref UInt32 rc, ref Single v) { throw new NotImplementedException(); }
+            public static void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] ref UInt32 rc, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="rc">[length: 1]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCodeuiVertex3(UInt32* rc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCodeuiVertex3([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeuivSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCode(Int32[] code) { throw new NotImplementedException(); }
+            public static void ReplacementCode([CountAttribute(Computed = "")] Int32[] code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeuivSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCode(Int32* code) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCode([CountAttribute(Computed = "")] Int32* code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeuivSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCode(UInt32[] code) { throw new NotImplementedException(); }
+            public static void ReplacementCode([CountAttribute(Computed = "")] UInt32[] code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeuivSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCode(UInt32* code) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCode([CountAttribute(Computed = "")] UInt32* code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
             /// <param name="code"></param>
@@ -133740,28 +133740,28 @@ namespace OpenTK.Graphics.OpenGL
             public static void ReplacementCode(UInt16 code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeusvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCode(Int16[] code) { throw new NotImplementedException(); }
+            public static void ReplacementCode([CountAttribute(Computed = "")] Int16[] code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeusvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCode(Int16* code) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCode([CountAttribute(Computed = "")] Int16* code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeusvSUN")]
             [CLSCompliant(false)]
-            public static void ReplacementCode(UInt16[] code) { throw new NotImplementedException(); }
+            public static void ReplacementCode([CountAttribute(Computed = "")] UInt16[] code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_triangle_list]</summary>
-            /// <param name="code"></param>
+            /// <param name="code">[length: COMPSIZE()]</param>
             [AutoGenerated(Category = "SUN_triangle_list", Version = "", EntryPoint = "glReplacementCodeusvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void ReplacementCode(UInt16* code) { throw new NotImplementedException(); }
+            public static unsafe void ReplacementCode([CountAttribute(Computed = "")] UInt16* code) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133781,7 +133781,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor3fVertex3(Single[] tc, Single[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor3fVertex3([CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133789,7 +133789,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor3fVertex3(ref Single tc, ref Single c, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor3fVertex3([CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133797,7 +133797,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2fColor3fVertex3(Single* tc, Single* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2fColor3fVertex3([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133822,7 +133822,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor4fNormal3fVertex3(Single[] tc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133831,7 +133831,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor4fNormal3fVertex3(ref Single tc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133840,7 +133840,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2fColor4fNormal3fVertex3(Single* tc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2fColor4fNormal3fVertex3([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133861,7 +133861,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor4ubVertex3(Single[] tc, Byte[] c, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor4ubVertex3([CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 4)] Byte[] c, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133869,7 +133869,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fColor4ubVertex3(ref Single tc, ref Byte c, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord2fColor4ubVertex3([CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 4)] ref Byte c, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133877,7 +133877,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fColor4ubVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2fColor4ubVertex3(Single* tc, Byte* c, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2fColor4ubVertex3([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133897,7 +133897,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fNormal3fVertex3(Single[] tc, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2fNormal3fVertex3([CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133905,7 +133905,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fNormal3fVertex3(ref Single tc, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord2fNormal3fVertex3([CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
@@ -133913,7 +133913,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fNormal3fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2fNormal3fVertex3(Single* tc, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2fNormal3fVertex3([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133929,21 +133929,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fVertex3(Single[] tc, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord2fVertex3([CountAttribute(Count = 2)] Single[] tc, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord2fVertex3(ref Single tc, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord2fVertex3([CountAttribute(Count = 2)] ref Single tc, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 2]</param>
             /// <param name="v">[length: 3]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord2fVertex3fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord2fVertex3(Single* tc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord2fVertex3([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -133971,7 +133971,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord4fColor4fNormal3fVertex4(Single[] tc, Single[] c, Single[] n, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord4fColor4fNormal3fVertex4([CountAttribute(Count = 4)] Single[] tc, [CountAttribute(Count = 4)] Single[] c, [CountAttribute(Count = 3)] Single[] n, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 4]</param>
@@ -133980,7 +133980,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord4fColor4fNormal3fVertex4(ref Single tc, ref Single c, ref Single n, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord4fColor4fNormal3fVertex4([CountAttribute(Count = 4)] ref Single tc, [CountAttribute(Count = 4)] ref Single c, [CountAttribute(Count = 3)] ref Single n, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 4]</param>
@@ -133989,7 +133989,7 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fColor4fNormal3fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4fColor4fNormal3fVertex4(Single* tc, Single* c, Single* n, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4fColor4fNormal3fVertex4([CountAttribute(Count = 4)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="s"></param>
@@ -134008,21 +134008,21 @@ namespace OpenTK.Graphics.OpenGL
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord4fVertex4(Single[] tc, Single[] v) { throw new NotImplementedException(); }
+            public static void TexCoord4fVertex4([CountAttribute(Count = 4)] Single[] tc, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 4]</param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static void TexCoord4fVertex4(ref Single tc, ref Single v) { throw new NotImplementedException(); }
+            public static void TexCoord4fVertex4([CountAttribute(Count = 4)] ref Single tc, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: SUN_vertex]</summary>
             /// <param name="tc">[length: 4]</param>
             /// <param name="v">[length: 4]</param>
             [AutoGenerated(Category = "SUN_vertex", Version = "", EntryPoint = "glTexCoord4fVertex4fvSUN")]
             [CLSCompliant(false)]
-            public static unsafe void TexCoord4fVertex4(Single* tc, Single* v) { throw new NotImplementedException(); }
+            public static unsafe void TexCoord4fVertex4([CountAttribute(Count = 4)] Single* tc, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         }
 
@@ -134057,46 +134057,46 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDebugMessageCallbackAMD(DebugProcAmd callback, [OutAttribute] IntPtr userParam);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageEnableAMD(System.Int32 category, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageEnableAMD(System.Int32 category, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsertAMD(System.Int32 category, System.Int32 severity, UInt32 id, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsertAMD(System.Int32 category, System.Int32 severity, UInt32 id, Int32 length, [CountAttribute(Parameter = "length")] IntPtr buf);
         [Slot(399)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteNamesAMD(System.Int32 identifier, UInt32 num, UInt32* names);
+        private static extern unsafe void glDeleteNamesAMD(System.Int32 identifier, UInt32 num, [CountAttribute(Parameter = "num")] UInt32* names);
         [Slot(403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, UInt32* monitors);
+        private static extern unsafe void glDeletePerfMonitorsAMD(Int32 n, [CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(517)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEndPerfMonitorAMD(UInt32 monitor);
         [Slot(641)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenNamesAMD(System.Int32 identifier, UInt32 num, [OutAttribute] UInt32* names);
+        private static extern unsafe void glGenNamesAMD(System.Int32 identifier, UInt32 num, [OutAttribute, CountAttribute(Parameter = "num")] UInt32* names);
         [Slot(644)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute] UInt32* monitors);
+        private static extern unsafe void glGenPerfMonitorsAMD(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* monitors);
         [Slot(723)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogAMD(UInt32 count, Int32 bufsize, [OutAttribute] System.Int32* categories, [OutAttribute] UInt32* severities, [OutAttribute] UInt32* ids, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr message);
+        private static extern unsafe Int32 glGetDebugMessageLogAMD(UInt32 count, Int32 bufsize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* categories, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* severities, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufsize")] IntPtr message);
         [Slot(912)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten);
+        private static extern unsafe void glGetPerfMonitorCounterDataAMD(UInt32 monitor, System.Int32 pname, Int32 dataSize, [OutAttribute, CountAttribute(Parameter = "dataSize")] UInt32* data, [OutAttribute, CountAttribute(Count = 1)] Int32* bytesWritten);
         [Slot(913)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute] IntPtr data);
+        private static extern void glGetPerfMonitorCounterInfoAMD(UInt32 group, UInt32 counter, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] IntPtr data);
         [Slot(914)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] UInt32* counters);
+        private static extern unsafe void glGetPerfMonitorCountersAMD(UInt32 group, [OutAttribute, CountAttribute(Count = 1)] Int32* numCounters, [OutAttribute, CountAttribute(Count = 1)] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute, CountAttribute(Parameter = "counterSize")] UInt32* counters);
         [Slot(915)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr counterString);
+        private static extern unsafe void glGetPerfMonitorCounterStringAMD(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr counterString);
         [Slot(916)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute] Int32* numGroups, Int32 groupsSize, [OutAttribute] UInt32* groups);
+        private static extern unsafe void glGetPerfMonitorGroupsAMD([OutAttribute, CountAttribute(Count = 1)] Int32* numGroups, Int32 groupsSize, [OutAttribute, CountAttribute(Parameter = "groupsSize")] UInt32* groups);
         [Slot(917)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr groupString);
+        private static extern unsafe void glGetPerfMonitorGroupStringAMD(UInt32 group, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr groupString);
         [Slot(1171)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsNameAMD(System.Int32 identifier, UInt32 name);
@@ -134111,10 +134111,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glQueryObjectParameteruiAMD(System.Int32 target, UInt32 id, System.Int32 pname, System.Int32 param);
         [Slot(1978)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] UInt32* counterList);
+        private static extern unsafe void glSelectPerfMonitorCountersAMD(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute, CountAttribute(Parameter = "numCounters")] UInt32* counterList);
         [Slot(1986)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSetMultisamplefvAMD(System.Int32 pname, UInt32 index, Single* val);
+        private static extern unsafe void glSetMultisamplefvAMD(System.Int32 pname, UInt32 index, [CountAttribute(Count = 2)] Single* val);
         [Slot(2012)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilOpValueAMD(System.Int32 face, UInt32 value);
@@ -134141,10 +134141,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBufferParameteriAPPLE(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesAPPLE(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesAPPLE(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(422)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArraysAPPLE(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArraysAPPLE(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(448)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDisableVertexAttribAPPLE(UInt32 index, System.Int32 pname);
@@ -134156,7 +134156,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDrawRangeElementArrayAPPLE(System.Int32 mode, UInt32 start, UInt32 end, Int32 first, Int32 count);
         [Slot(495)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glElementPointerAPPLE(System.Int32 type, IntPtr pointer);
+        private static extern void glElementPointerAPPLE(System.Int32 type, [CountAttribute(Computed = "type")] IntPtr pointer);
         [Slot(507)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableVertexAttribAPPLE(UInt32 index, System.Int32 pname);
@@ -134171,19 +134171,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFlushMappedBufferRangeAPPLE(System.Int32 target, IntPtr offset, IntPtr size);
         [Slot(564)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glFlushVertexArrayRangeAPPLE(Int32 length, [OutAttribute] IntPtr pointer);
+        private static extern void glFlushVertexArrayRangeAPPLE(Int32 length, [OutAttribute, CountAttribute(Parameter = "length")] IntPtr pointer);
         [Slot(635)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesAPPLE(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesAPPLE(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(660)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArraysAPPLE(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArraysAPPLE(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(892)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectParameterivAPPLE(System.Int32 objectType, UInt32 name, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetObjectParameterivAPPLE(System.Int32 objectType, UInt32 name, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1017)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetTexParameterPointervAPPLE(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetTexParameterPointervAPPLE(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(1164)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsFenceAPPLE(UInt32 fence);
@@ -134195,22 +134195,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern byte glIsVertexAttribEnabledAPPLE(UInt32 index, System.Int32 pname);
         [Slot(1275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapVertexAttrib1dAPPLE(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, Double* points);
+        private static extern unsafe void glMapVertexAttrib1dAPPLE(UInt32 index, UInt32 size, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Double* points);
         [Slot(1276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapVertexAttrib1fAPPLE(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, Single* points);
+        private static extern unsafe void glMapVertexAttrib1fAPPLE(UInt32 index, UInt32 size, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "size,stride,order")] Single* points);
         [Slot(1277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapVertexAttrib2dAPPLE(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points);
+        private static extern unsafe void glMapVertexAttrib2dAPPLE(UInt32 index, UInt32 size, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Double* points);
         [Slot(1278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapVertexAttrib2fAPPLE(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points);
+        private static extern unsafe void glMapVertexAttrib2fAPPLE(UInt32 index, UInt32 size, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "size,ustride,uorder,vstride,vorder")] Single* points);
         [Slot(1329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementArrayAPPLE(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementArrayAPPLE(System.Int32 mode, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount);
         [Slot(1338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawRangeElementArrayAPPLE(System.Int32 mode, UInt32 start, UInt32 end, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawRangeElementArrayAPPLE(System.Int32 mode, UInt32 start, UInt32 end, [CountAttribute(Parameter = "primcount")] Int32* first, [CountAttribute(Parameter = "primcount")] Int32* count, Int32 primcount);
         [Slot(1551)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glObjectPurgeableAPPLE(System.Int32 objectType, UInt32 name, System.Int32 option);
@@ -134228,13 +134228,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern byte glTestObjectAPPLE(System.Int32 @object, UInt32 name);
         [Slot(2209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureRangeAPPLE(System.Int32 target, Int32 length, IntPtr pointer);
+        private static extern void glTextureRangeAPPLE(System.Int32 target, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pointer);
         [Slot(2435)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexArrayParameteriAPPLE(System.Int32 pname, Int32 param);
         [Slot(2436)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexArrayRangeAPPLE(Int32 length, [OutAttribute] IntPtr pointer);
+        private static extern void glVertexArrayRangeAPPLE(Int32 length, [OutAttribute, CountAttribute(Parameter = "length")] IntPtr pointer);
         [Slot(7)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glActiveTextureARB(System.Int32 texture);
@@ -134267,13 +134267,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBlendFuncSeparateiARB(UInt32 buf, System.Int32 srcRGB, System.Int32 dstRGB, System.Int32 srcAlpha, System.Int32 dstAlpha);
         [Slot(134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferDataARB(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferDataARB(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBufferPageCommitmentARB(System.Int32 target, IntPtr offset, Int32 size, bool commit);
         [Slot(139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubDataARB(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubDataARB(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClampColorARB(System.Int32 target, System.Int32 clamp);
@@ -134285,25 +134285,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glCompileShaderARB(UInt32 shaderObj);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCompileShaderIncludeARB(UInt32 shader, Int32 count, IntPtr path, Int32* length);
+        private static extern unsafe void glCompileShaderIncludeARB(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr path, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage1DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage1DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3DARB(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage1DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage1DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3DARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glCreateProgramObjectARB();
@@ -134318,28 +134318,28 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glCurrentPaletteMatrixARB(Int32 index);
         [Slot(376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageCallbackARB(DebugProcArb callback, IntPtr userParam);
+        private static extern void glDebugMessageCallbackARB(DebugProcArb callback, [CountAttribute(Computed = "callback")] IntPtr userParam);
         [Slot(379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControlARB(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControlARB(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsertARB(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsertARB(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Parameter = "length")] IntPtr buf);
         [Slot(391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffersARB(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffersARB(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(398)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDeleteNamedStringARB(Int32 namelen, IntPtr name);
+        private static extern void glDeleteNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name);
         [Slot(400)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteObjectARB(UInt32 obj);
         [Slot(408)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramsARB(Int32 n, UInt32* programs);
+        private static extern unsafe void glDeleteProgramsARB(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs);
         [Slot(411)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueriesARB(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueriesARB(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(435)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDetachObjectARB(UInt32 containerObj, UInt32 attachedObj);
@@ -134354,10 +134354,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDrawArraysInstancedARB(System.Int32 mode, Int32 first, Int32 count, Int32 primcount);
         [Slot(463)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersARB(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffersARB(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(471)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedARB(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedARB(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(509)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableVertexAttribArrayARB(UInt32 index);
@@ -134375,40 +134375,40 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFramebufferTextureLayerARB(System.Int32 target, System.Int32 attachment, UInt32 texture, Int32 level, Int32 layer);
         [Slot(629)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffersARB(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffersARB(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(647)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramsARB(Int32 n, [OutAttribute] UInt32* programs);
+        private static extern unsafe void glGenProgramsARB(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* programs);
         [Slot(650)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueriesARB(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueriesARB(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(664)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttribARB(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttribARB(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] IntPtr name);
         [Slot(669)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformARB(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniformARB(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "maxLength")] IntPtr name);
         [Slot(677)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedObjectsARB(UInt32 containerObj, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* obj);
+        private static extern unsafe void glGetAttachedObjectsARB(UInt32 containerObj, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* obj);
         [Slot(680)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocationARB(UInt32 programObj, IntPtr name);
         [Slot(686)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameterivARB(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameterivARB(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(689)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferPointervARB(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetBufferPointervARB(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(691)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferSubDataARB(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data);
+        private static extern void glGetBufferSubDataARB(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(711)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetCompressedTexImageARB(System.Int32 target, Int32 level, [OutAttribute] IntPtr img);
+        private static extern void glGetCompressedTexImageARB(System.Int32 target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img);
         [Slot(724)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogARB(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogARB(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(754)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusARB();
@@ -134420,103 +134420,103 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int64 glGetImageHandleARB(UInt32 texture, Int32 level, bool layered, Int32 layer, System.Int32 format);
         [Slot(768)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInfoLogARB(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetInfoLogARB(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] IntPtr infoLog);
         [Slot(844)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedStringARB(Int32 namelen, IntPtr name, Int32 bufSize, [OutAttribute] Int32* stringlen, [OutAttribute] IntPtr @string);
+        private static extern unsafe void glGetNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr @string);
         [Slot(845)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedStringivARB(Int32 namelen, IntPtr name, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedStringivARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(847)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnColorTableARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr table);
+        private static extern void glGetnColorTableARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr table);
         [Slot(849)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnCompressedTexImageARB(System.Int32 target, Int32 lod, Int32 bufSize, [OutAttribute] IntPtr img);
+        private static extern void glGetnCompressedTexImageARB(System.Int32 target, Int32 lod, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img);
         [Slot(851)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnConvolutionFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr image);
+        private static extern void glGetnConvolutionFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr image);
         [Slot(854)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnHistogramARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr values);
+        private static extern void glGetnHistogramARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values);
         [Slot(856)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapdvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Double* v);
+        private static extern unsafe void glGetnMapdvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* v);
         [Slot(858)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapfvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Single* v);
+        private static extern unsafe void glGetnMapfvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* v);
         [Slot(860)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapivARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Int32* v);
+        private static extern unsafe void glGetnMapivARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* v);
         [Slot(862)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnMinmaxARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr values);
+        private static extern void glGetnMinmaxARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values);
         [Slot(864)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapfvARB(System.Int32 map, Int32 bufSize, [OutAttribute] Single* values);
+        private static extern unsafe void glGetnPixelMapfvARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* values);
         [Slot(866)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapuivARB(System.Int32 map, Int32 bufSize, [OutAttribute] UInt32* values);
+        private static extern unsafe void glGetnPixelMapuivARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* values);
         [Slot(868)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapusvARB(System.Int32 map, Int32 bufSize, [OutAttribute] UInt16* values);
+        private static extern unsafe void glGetnPixelMapusvARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16* values);
         [Slot(870)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPolygonStippleARB(Int32 bufSize, [OutAttribute] Byte* pattern);
+        private static extern unsafe void glGetnPolygonStippleARB(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte* pattern);
         [Slot(872)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnSeparableFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 rowBufSize, [OutAttribute] IntPtr row, Int32 columnBufSize, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span);
+        private static extern void glGetnSeparableFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 rowBufSize, [OutAttribute, CountAttribute(Parameter = "rowBufSize")] IntPtr row, Int32 columnBufSize, [OutAttribute, CountAttribute(Parameter = "columnBufSize")] IntPtr column, [OutAttribute, CountAttribute(Count = 0)] IntPtr span);
         [Slot(874)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnTexImageARB(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr img);
+        private static extern void glGetnTexImageARB(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img);
         [Slot(876)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformdvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetnUniformdvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params);
         [Slot(878)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(881)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(884)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformuivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetnUniformuivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* @params);
         [Slot(891)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectParameterfvARB(UInt32 obj, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetObjectParameterfvARB(UInt32 obj, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(893)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectParameterivARB(UInt32 obj, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetObjectParameterivARB(UInt32 obj, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(936)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramEnvParameterdvARB(System.Int32 target, UInt32 index, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetProgramEnvParameterdvARB(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(937)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramEnvParameterfvARB(System.Int32 target, UInt32 index, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetProgramEnvParameterfvARB(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(943)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramivARB(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramivARB(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(945)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramLocalParameterdvARB(System.Int32 target, UInt32 index, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetProgramLocalParameterdvARB(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(946)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramLocalParameterfvARB(System.Int32 target, UInt32 index, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetProgramLocalParameterfvARB(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(964)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetProgramStringARB(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @string);
+        private static extern void glGetProgramStringARB(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "target,pname")] IntPtr @string);
         [Slot(969)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryivARB(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryivARB(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(973)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectivARB(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryObjectivARB(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(977)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectuivARB(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetQueryObjectuivARB(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(990)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSourceARB(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSourceARB(UInt32 obj, Int32 maxLength, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "maxLength")] IntPtr source);
         [Slot(1019)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int64 glGetTextureHandleARB(UInt32 texture);
@@ -134525,28 +134525,28 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int64 glGetTextureSamplerHandleARB(UInt32 texture, UInt32 sampler);
         [Slot(1049)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfvARB(UInt32 programObj, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfvARB(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Single* @params);
         [Slot(1053)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformivARB(UInt32 programObj, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformivARB(UInt32 programObj, Int32 location, [OutAttribute, CountAttribute(Computed = "programObj,location")] Int32* @params);
         [Slot(1055)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocationARB(UInt32 programObj, IntPtr name);
         [Slot(1078)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribdvARB(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribdvARB(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(1081)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfvARB(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfvARB(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(1088)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribivARB(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribivARB(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(1093)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetVertexAttribLui64vARB(UInt32 index, System.Int32 pname, [OutAttribute] UInt64* @params);
         [Slot(1096)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointervARB(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointervARB(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(1159)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsBufferARB(UInt32 buffer);
@@ -134555,7 +134555,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern byte glIsImageHandleResidentARB(UInt64 handle);
         [Slot(1173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern byte glIsNamedStringARB(Int32 namelen, IntPtr name);
+        private static extern byte glIsNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name);
         [Slot(1180)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsProgramARB(UInt32 program);
@@ -134570,10 +134570,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glLinkProgramARB(UInt32 programObj);
         [Slot(1233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixdARB(Double* m);
+        private static extern unsafe void glLoadTransposeMatrixdARB([CountAttribute(Count = 16)] Double* m);
         [Slot(1235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixfARB(Single* m);
+        private static extern unsafe void glLoadTransposeMatrixfARB([CountAttribute(Count = 16)] Single* m);
         [Slot(1241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMakeImageHandleNonResidentARB(UInt64 handle);
@@ -134591,16 +134591,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern IntPtr glMapBufferARB(System.Int32 target, System.Int32 access);
         [Slot(1286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMatrixIndexPointerARB(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glMatrixIndexPointerARB(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(1287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixIndexubvARB(Int32 size, Byte* indices);
+        private static extern unsafe void glMatrixIndexubvARB(Int32 size, [CountAttribute(Parameter = "size")] Byte* indices);
         [Slot(1288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixIndexuivARB(Int32 size, UInt32* indices);
+        private static extern unsafe void glMatrixIndexuivARB(Int32 size, [CountAttribute(Parameter = "size")] UInt32* indices);
         [Slot(1289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixIndexusvARB(Int32 size, UInt16* indices);
+        private static extern unsafe void glMatrixIndexusvARB(Int32 size, [CountAttribute(Parameter = "size")] UInt16* indices);
         [Slot(1321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMinSampleShadingARB(Single value);
@@ -134615,160 +134615,160 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMultiTexCoord1dARB(System.Int32 target, Double s);
         [Slot(1347)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1dvARB(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord1dvARB(System.Int32 target, [CountAttribute(Count = 1)] Double* v);
         [Slot(1349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1fARB(System.Int32 target, Single s);
         [Slot(1351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1fvARB(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord1fvARB(System.Int32 target, [CountAttribute(Count = 1)] Single* v);
         [Slot(1355)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1iARB(System.Int32 target, Int32 s);
         [Slot(1357)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1ivARB(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord1ivARB(System.Int32 target, [CountAttribute(Count = 1)] Int32* v);
         [Slot(1359)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1sARB(System.Int32 target, Int16 s);
         [Slot(1361)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1svARB(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord1svARB(System.Int32 target, [CountAttribute(Count = 1)] Int16* v);
         [Slot(1367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2dARB(System.Int32 target, Double s, Double t);
         [Slot(1369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2dvARB(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord2dvARB(System.Int32 target, [CountAttribute(Count = 2)] Double* v);
         [Slot(1371)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2fARB(System.Int32 target, Single s, Single t);
         [Slot(1373)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2fvARB(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord2fvARB(System.Int32 target, [CountAttribute(Count = 2)] Single* v);
         [Slot(1377)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2iARB(System.Int32 target, Int32 s, Int32 t);
         [Slot(1379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2ivARB(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord2ivARB(System.Int32 target, [CountAttribute(Count = 2)] Int32* v);
         [Slot(1381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2sARB(System.Int32 target, Int16 s, Int16 t);
         [Slot(1383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2svARB(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord2svARB(System.Int32 target, [CountAttribute(Count = 2)] Int16* v);
         [Slot(1389)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3dARB(System.Int32 target, Double s, Double t, Double r);
         [Slot(1391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3dvARB(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord3dvARB(System.Int32 target, [CountAttribute(Count = 3)] Double* v);
         [Slot(1393)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3fARB(System.Int32 target, Single s, Single t, Single r);
         [Slot(1395)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3fvARB(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord3fvARB(System.Int32 target, [CountAttribute(Count = 3)] Single* v);
         [Slot(1399)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3iARB(System.Int32 target, Int32 s, Int32 t, Int32 r);
         [Slot(1401)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3ivARB(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord3ivARB(System.Int32 target, [CountAttribute(Count = 3)] Int32* v);
         [Slot(1403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3sARB(System.Int32 target, Int16 s, Int16 t, Int16 r);
         [Slot(1405)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3svARB(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord3svARB(System.Int32 target, [CountAttribute(Count = 3)] Int16* v);
         [Slot(1411)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4dARB(System.Int32 target, Double s, Double t, Double r, Double q);
         [Slot(1413)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4dvARB(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord4dvARB(System.Int32 target, [CountAttribute(Count = 4)] Double* v);
         [Slot(1415)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4fARB(System.Int32 target, Single s, Single t, Single r, Single q);
         [Slot(1417)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4fvARB(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord4fvARB(System.Int32 target, [CountAttribute(Count = 4)] Single* v);
         [Slot(1421)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4iARB(System.Int32 target, Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(1423)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4ivARB(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord4ivARB(System.Int32 target, [CountAttribute(Count = 4)] Int32* v);
         [Slot(1425)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4sARB(System.Int32 target, Int16 s, Int16 t, Int16 r, Int16 q);
         [Slot(1427)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4svARB(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord4svARB(System.Int32 target, [CountAttribute(Count = 4)] Int16* v);
         [Slot(1466)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixdARB(Double* m);
+        private static extern unsafe void glMultTransposeMatrixdARB([CountAttribute(Count = 16)] Double* m);
         [Slot(1468)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixfARB(Single* m);
+        private static extern unsafe void glMultTransposeMatrixfARB([CountAttribute(Count = 16)] Single* m);
         [Slot(1472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedBufferPageCommitmentARB(UInt32 buffer, IntPtr offset, Int32 size, bool commit);
         [Slot(1511)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedStringARB(System.Int32 type, Int32 namelen, IntPtr name, Int32 stringlen, IntPtr @string);
+        private static extern void glNamedStringARB(System.Int32 type, Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, Int32 stringlen, [CountAttribute(Parameter = "stringlen")] IntPtr @string);
         [Slot(1610)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameterfARB(System.Int32 pname, Single param);
         [Slot(1614)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfvARB(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfvARB(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1651)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramEnvParameter4dARB(System.Int32 target, UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(1652)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParameter4dvARB(System.Int32 target, UInt32 index, Double* @params);
+        private static extern unsafe void glProgramEnvParameter4dvARB(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Double* @params);
         [Slot(1653)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramEnvParameter4fARB(System.Int32 target, UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(1654)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParameter4fvARB(System.Int32 target, UInt32 index, Single* @params);
+        private static extern unsafe void glProgramEnvParameter4fvARB(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Single* @params);
         [Slot(1662)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramLocalParameter4dARB(System.Int32 target, UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(1663)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParameter4dvARB(System.Int32 target, UInt32 index, Double* @params);
+        private static extern unsafe void glProgramLocalParameter4dvARB(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Double* @params);
         [Slot(1664)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramLocalParameter4fARB(System.Int32 target, UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(1665)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParameter4fvARB(System.Int32 target, UInt32 index, Single* @params);
+        private static extern unsafe void glProgramLocalParameter4fvARB(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Single* @params);
         [Slot(1682)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteriARB(UInt32 program, System.Int32 pname, Int32 value);
         [Slot(1687)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramStringARB(System.Int32 target, System.Int32 format, Int32 len, IntPtr @string);
+        private static extern void glProgramStringARB(System.Int32 target, System.Int32 format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string);
         [Slot(1769)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniformHandleui64ARB(UInt32 program, Int32 location, UInt64 value);
         [Slot(1771)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformHandleui64vARB(UInt32 program, Int32 location, Int32 count, UInt64* values);
+        private static extern unsafe void glProgramUniformHandleui64vARB(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values);
         [Slot(1858)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsARB(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsARB(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(1914)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSampleCoverageARB(Single value, bool invert);
         [Slot(1993)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSourceARB(UInt32 shaderObj, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSourceARB(UInt32 shaderObj, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(2042)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexBufferARB(System.Int32 target, System.Int32 internalformat, UInt32 buffer);
@@ -134780,64 +134780,64 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glUniform1fARB(Int32 location, Single v0);
         [Slot(2246)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fvARB(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fvARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(2250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1iARB(Int32 location, Int32 v0);
         [Slot(2252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1ivARB(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1ivARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(2262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2fARB(Int32 location, Single v0, Single v1);
         [Slot(2264)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fvARB(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fvARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(2268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2iARB(Int32 location, Int32 v0, Int32 v1);
         [Slot(2270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2ivARB(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2ivARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(2280)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3fARB(Int32 location, Single v0, Single v1, Single v2);
         [Slot(2282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fvARB(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fvARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(2286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3iARB(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(2288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3ivARB(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3ivARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(2298)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4fARB(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(2300)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fvARB(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fvARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(2304)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4iARB(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(2306)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4ivARB(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4ivARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(2315)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformHandleui64ARB(Int32 location, UInt64 value);
         [Slot(2317)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformHandleui64vARB(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniformHandleui64vARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value);
         [Slot(2321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fvARB(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fvARB(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(2328)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fvARB(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fvARB(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(2335)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fvARB(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fvARB(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(2345)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBufferARB(System.Int32 target);
@@ -134852,109 +134852,109 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexAttrib1dARB(UInt32 index, Double x);
         [Slot(2456)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1dvARB(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib1dvARB(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(2459)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1fARB(UInt32 index, Single x);
         [Slot(2462)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fvARB(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fvARB(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(2467)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1sARB(UInt32 index, Int16 x);
         [Slot(2470)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1svARB(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib1svARB(UInt32 index, [CountAttribute(Count = 1)] Int16* v);
         [Slot(2473)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2dARB(UInt32 index, Double x, Double y);
         [Slot(2476)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2dvARB(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib2dvARB(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(2479)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2fARB(UInt32 index, Single x, Single y);
         [Slot(2482)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fvARB(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fvARB(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(2487)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2sARB(UInt32 index, Int16 x, Int16 y);
         [Slot(2490)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2svARB(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib2svARB(UInt32 index, [CountAttribute(Count = 2)] Int16* v);
         [Slot(2493)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3dARB(UInt32 index, Double x, Double y, Double z);
         [Slot(2496)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3dvARB(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib3dvARB(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(2499)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3fARB(UInt32 index, Single x, Single y, Single z);
         [Slot(2502)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fvARB(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fvARB(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(2507)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3sARB(UInt32 index, Int16 x, Int16 y, Int16 z);
         [Slot(2510)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3svARB(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib3svARB(UInt32 index, [CountAttribute(Count = 3)] Int16* v);
         [Slot(2513)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4bvARB(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4bvARB(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2515)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4dARB(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(2518)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4dvARB(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib4dvARB(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(2521)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4fARB(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(2524)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fvARB(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fvARB(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(2529)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4ivARB(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4ivARB(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2531)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NbvARB(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4NbvARB(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2533)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NivARB(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4NivARB(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2535)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NsvARB(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4NsvARB(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2537)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4NubARB(UInt32 index, Byte x, Byte y, Byte z, Byte w);
         [Slot(2539)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NubvARB(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4NubvARB(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2541)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NuivARB(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4NuivARB(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2543)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4NusvARB(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4NusvARB(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2545)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4sARB(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2548)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4svARB(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4svARB(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2552)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4ubvARB(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4ubvARB(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2555)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4uivARB(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4uivARB(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2557)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4usvARB(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4usvARB(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2561)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribDivisorARB(UInt32 index, UInt32 divisor);
@@ -134966,85 +134966,85 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glVertexAttribL1ui64vARB(UInt32 index, UInt64* v);
         [Slot(2656)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointerARB(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointerARB(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2676)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexBlendARB(Int32 count);
         [Slot(2736)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightbvARB(Int32 size, SByte* weights);
+        private static extern unsafe void glWeightbvARB(Int32 size, [CountAttribute(Parameter = "size")] SByte* weights);
         [Slot(2737)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightdvARB(Int32 size, Double* weights);
+        private static extern unsafe void glWeightdvARB(Int32 size, [CountAttribute(Parameter = "size")] Double* weights);
         [Slot(2738)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightfvARB(Int32 size, Single* weights);
+        private static extern unsafe void glWeightfvARB(Int32 size, [CountAttribute(Parameter = "size")] Single* weights);
         [Slot(2739)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightivARB(Int32 size, Int32* weights);
+        private static extern unsafe void glWeightivARB(Int32 size, [CountAttribute(Parameter = "size")] Int32* weights);
         [Slot(2741)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glWeightPointerARB(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glWeightPointerARB(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(2742)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightsvARB(Int32 size, Int16* weights);
+        private static extern unsafe void glWeightsvARB(Int32 size, [CountAttribute(Parameter = "size")] Int16* weights);
         [Slot(2743)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightubvARB(Int32 size, Byte* weights);
+        private static extern unsafe void glWeightubvARB(Int32 size, [CountAttribute(Parameter = "size")] Byte* weights);
         [Slot(2744)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightuivARB(Int32 size, UInt32* weights);
+        private static extern unsafe void glWeightuivARB(Int32 size, [CountAttribute(Parameter = "size")] UInt32* weights);
         [Slot(2745)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightusvARB(Int32 size, UInt16* weights);
+        private static extern unsafe void glWeightusvARB(Int32 size, [CountAttribute(Parameter = "size")] UInt16* weights);
         [Slot(2747)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2dARB(Double x, Double y);
         [Slot(2750)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2dvARB(Double* v);
+        private static extern unsafe void glWindowPos2dvARB([CountAttribute(Count = 2)] Double* v);
         [Slot(2753)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2fARB(Single x, Single y);
         [Slot(2756)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2fvARB(Single* v);
+        private static extern unsafe void glWindowPos2fvARB([CountAttribute(Count = 2)] Single* v);
         [Slot(2759)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2iARB(Int32 x, Int32 y);
         [Slot(2762)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2ivARB(Int32* v);
+        private static extern unsafe void glWindowPos2ivARB([CountAttribute(Count = 2)] Int32* v);
         [Slot(2765)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2sARB(Int16 x, Int16 y);
         [Slot(2768)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2svARB(Int16* v);
+        private static extern unsafe void glWindowPos2svARB([CountAttribute(Count = 2)] Int16* v);
         [Slot(2771)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3dARB(Double x, Double y, Double z);
         [Slot(2774)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3dvARB(Double* v);
+        private static extern unsafe void glWindowPos3dvARB([CountAttribute(Count = 3)] Double* v);
         [Slot(2777)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3fARB(Single x, Single y, Single z);
         [Slot(2780)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3fvARB(Single* v);
+        private static extern unsafe void glWindowPos3fvARB([CountAttribute(Count = 3)] Single* v);
         [Slot(2783)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3iARB(Int32 x, Int32 y, Int32 z);
         [Slot(2786)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3ivARB(Int32* v);
+        private static extern unsafe void glWindowPos3ivARB([CountAttribute(Count = 3)] Int32* v);
         [Slot(2789)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3sARB(Int16 x, Int16 y, Int16 z);
         [Slot(2792)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3svARB(Int16* v);
+        private static extern unsafe void glWindowPos3svARB([CountAttribute(Count = 3)] Int16* v);
         [Slot(9)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glAlphaFragmentOp1ATI(System.Int32 op, UInt32 dst, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod);
@@ -135080,7 +135080,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDeleteFragmentShaderATI(UInt32 id);
         [Slot(464)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffersATI(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffersATI(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(466)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawElementArrayATI(System.Int32 mode, Int32 count);
@@ -135089,7 +135089,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDrawRangeElementArrayATI(System.Int32 mode, UInt32 start, UInt32 end, Int32 count);
         [Slot(496)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glElementPointerATI(System.Int32 type, IntPtr pointer);
+        private static extern void glElementPointerATI(System.Int32 type, [CountAttribute(Computed = "type")] IntPtr pointer);
         [Slot(514)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEndFragmentShaderATI();
@@ -135101,34 +135101,34 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int32 glGenFragmentShadersATI(UInt32 range);
         [Slot(675)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetArrayObjectfvATI(System.Int32 array, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetArrayObjectfvATI(System.Int32 array, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params);
         [Slot(676)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetArrayObjectivATI(System.Int32 array, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetArrayObjectivATI(System.Int32 array, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(886)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectBufferfvATI(UInt32 buffer, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetObjectBufferfvATI(UInt32 buffer, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params);
         [Slot(887)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectBufferivATI(UInt32 buffer, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetObjectBufferivATI(UInt32 buffer, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(997)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexBumpParameterfvATI(System.Int32 pname, [OutAttribute] Single* param);
+        private static extern unsafe void glGetTexBumpParameterfvATI(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* param);
         [Slot(998)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexBumpParameterivATI(System.Int32 pname, [OutAttribute] Int32* param);
+        private static extern unsafe void glGetTexBumpParameterivATI(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* param);
         [Slot(1061)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVariantArrayObjectfvATI(UInt32 id, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVariantArrayObjectfvATI(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params);
         [Slot(1062)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVariantArrayObjectivATI(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVariantArrayObjectivATI(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(1075)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribArrayObjectfvATI(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribArrayObjectfvATI(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1076)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribArrayObjectivATI(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribArrayObjectivATI(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsObjectBufferATI(UInt32 buffer);
@@ -135137,37 +135137,37 @@ namespace OpenTK.Graphics.OpenGL
         private static extern IntPtr glMapObjectBufferATI(UInt32 buffer);
         [Slot(1513)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glNewObjectBufferATI(Int32 size, IntPtr pointer, System.Int32 usage);
+        private static extern Int32 glNewObjectBufferATI(Int32 size, [CountAttribute(Parameter = "size")] IntPtr pointer, System.Int32 usage);
         [Slot(1537)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalStream3bATI(System.Int32 stream, SByte nx, SByte ny, SByte nz);
         [Slot(1538)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalStream3bvATI(System.Int32 stream, SByte* coords);
+        private static extern unsafe void glNormalStream3bvATI(System.Int32 stream, [CountAttribute(Count = 3)] SByte* coords);
         [Slot(1539)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalStream3dATI(System.Int32 stream, Double nx, Double ny, Double nz);
         [Slot(1540)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalStream3dvATI(System.Int32 stream, Double* coords);
+        private static extern unsafe void glNormalStream3dvATI(System.Int32 stream, [CountAttribute(Count = 3)] Double* coords);
         [Slot(1541)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalStream3fATI(System.Int32 stream, Single nx, Single ny, Single nz);
         [Slot(1542)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalStream3fvATI(System.Int32 stream, Single* coords);
+        private static extern unsafe void glNormalStream3fvATI(System.Int32 stream, [CountAttribute(Count = 3)] Single* coords);
         [Slot(1543)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalStream3iATI(System.Int32 stream, Int32 nx, Int32 ny, Int32 nz);
         [Slot(1544)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalStream3ivATI(System.Int32 stream, Int32* coords);
+        private static extern unsafe void glNormalStream3ivATI(System.Int32 stream, [CountAttribute(Count = 3)] Int32* coords);
         [Slot(1545)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalStream3sATI(System.Int32 stream, Int16 nx, Int16 ny, Int16 nz);
         [Slot(1546)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalStream3svATI(System.Int32 stream, Int16* coords);
+        private static extern unsafe void glNormalStream3svATI(System.Int32 stream, [CountAttribute(Count = 3)] Int16* coords);
         [Slot(1556)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPassTexCoordATI(UInt32 dst, UInt32 coord, System.Int32 swizzle);
@@ -135182,7 +135182,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSampleMapATI(UInt32 dst, UInt32 interp, System.Int32 swizzle);
         [Slot(1983)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSetFragmentShaderConstantATI(UInt32 dst, Single* value);
+        private static extern unsafe void glSetFragmentShaderConstantATI(UInt32 dst, [CountAttribute(Count = 4)] Single* value);
         [Slot(2006)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilFuncSeparateATI(System.Int32 frontfunc, System.Int32 backfunc, Int32 @ref, UInt32 mask);
@@ -135191,16 +135191,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glStencilOpSeparateATI(System.Int32 face, System.Int32 sfail, System.Int32 dpfail, System.Int32 dppass);
         [Slot(2045)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexBumpParameterfvATI(System.Int32 pname, Single* param);
+        private static extern unsafe void glTexBumpParameterfvATI(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* param);
         [Slot(2046)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexBumpParameterivATI(System.Int32 pname, Int32* param);
+        private static extern unsafe void glTexBumpParameterivATI(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(2348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUnmapObjectBufferATI(UInt32 buffer);
         [Slot(2350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glUpdateObjectBufferATI(UInt32 buffer, UInt32 offset, Int32 size, IntPtr pointer, System.Int32 preserve);
+        private static extern void glUpdateObjectBufferATI(UInt32 buffer, UInt32 offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr pointer, System.Int32 preserve);
         [Slot(2360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVariantArrayObjectATI(UInt32 id, System.Int32 type, Int32 stride, UInt32 buffer, UInt32 offset);
@@ -135218,97 +135218,97 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexStream1dATI(System.Int32 stream, Double x);
         [Slot(2691)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream1dvATI(System.Int32 stream, Double* coords);
+        private static extern unsafe void glVertexStream1dvATI(System.Int32 stream, [CountAttribute(Count = 1)] Double* coords);
         [Slot(2692)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream1fATI(System.Int32 stream, Single x);
         [Slot(2693)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream1fvATI(System.Int32 stream, Single* coords);
+        private static extern unsafe void glVertexStream1fvATI(System.Int32 stream, [CountAttribute(Count = 1)] Single* coords);
         [Slot(2694)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream1iATI(System.Int32 stream, Int32 x);
         [Slot(2695)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream1ivATI(System.Int32 stream, Int32* coords);
+        private static extern unsafe void glVertexStream1ivATI(System.Int32 stream, [CountAttribute(Count = 1)] Int32* coords);
         [Slot(2696)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream1sATI(System.Int32 stream, Int16 x);
         [Slot(2697)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream1svATI(System.Int32 stream, Int16* coords);
+        private static extern unsafe void glVertexStream1svATI(System.Int32 stream, [CountAttribute(Count = 1)] Int16* coords);
         [Slot(2698)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream2dATI(System.Int32 stream, Double x, Double y);
         [Slot(2699)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream2dvATI(System.Int32 stream, Double* coords);
+        private static extern unsafe void glVertexStream2dvATI(System.Int32 stream, [CountAttribute(Count = 2)] Double* coords);
         [Slot(2700)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream2fATI(System.Int32 stream, Single x, Single y);
         [Slot(2701)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream2fvATI(System.Int32 stream, Single* coords);
+        private static extern unsafe void glVertexStream2fvATI(System.Int32 stream, [CountAttribute(Count = 2)] Single* coords);
         [Slot(2702)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream2iATI(System.Int32 stream, Int32 x, Int32 y);
         [Slot(2703)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream2ivATI(System.Int32 stream, Int32* coords);
+        private static extern unsafe void glVertexStream2ivATI(System.Int32 stream, [CountAttribute(Count = 2)] Int32* coords);
         [Slot(2704)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream2sATI(System.Int32 stream, Int16 x, Int16 y);
         [Slot(2705)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream2svATI(System.Int32 stream, Int16* coords);
+        private static extern unsafe void glVertexStream2svATI(System.Int32 stream, [CountAttribute(Count = 2)] Int16* coords);
         [Slot(2706)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream3dATI(System.Int32 stream, Double x, Double y, Double z);
         [Slot(2707)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream3dvATI(System.Int32 stream, Double* coords);
+        private static extern unsafe void glVertexStream3dvATI(System.Int32 stream, [CountAttribute(Count = 3)] Double* coords);
         [Slot(2708)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream3fATI(System.Int32 stream, Single x, Single y, Single z);
         [Slot(2709)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream3fvATI(System.Int32 stream, Single* coords);
+        private static extern unsafe void glVertexStream3fvATI(System.Int32 stream, [CountAttribute(Count = 3)] Single* coords);
         [Slot(2710)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream3iATI(System.Int32 stream, Int32 x, Int32 y, Int32 z);
         [Slot(2711)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream3ivATI(System.Int32 stream, Int32* coords);
+        private static extern unsafe void glVertexStream3ivATI(System.Int32 stream, [CountAttribute(Count = 3)] Int32* coords);
         [Slot(2712)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream3sATI(System.Int32 stream, Int16 x, Int16 y, Int16 z);
         [Slot(2713)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream3svATI(System.Int32 stream, Int16* coords);
+        private static extern unsafe void glVertexStream3svATI(System.Int32 stream, [CountAttribute(Count = 3)] Int16* coords);
         [Slot(2714)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream4dATI(System.Int32 stream, Double x, Double y, Double z, Double w);
         [Slot(2715)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream4dvATI(System.Int32 stream, Double* coords);
+        private static extern unsafe void glVertexStream4dvATI(System.Int32 stream, [CountAttribute(Count = 4)] Double* coords);
         [Slot(2716)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream4fATI(System.Int32 stream, Single x, Single y, Single z, Single w);
         [Slot(2717)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream4fvATI(System.Int32 stream, Single* coords);
+        private static extern unsafe void glVertexStream4fvATI(System.Int32 stream, [CountAttribute(Count = 4)] Single* coords);
         [Slot(2718)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream4iATI(System.Int32 stream, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(2719)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream4ivATI(System.Int32 stream, Int32* coords);
+        private static extern unsafe void glVertexStream4ivATI(System.Int32 stream, [CountAttribute(Count = 4)] Int32* coords);
         [Slot(2720)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexStream4sATI(System.Int32 stream, Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2721)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexStream4svATI(System.Int32 stream, Int16* coords);
+        private static extern unsafe void glVertexStream4svATI(System.Int32 stream, [CountAttribute(Count = 4)] Int16* coords);
         [Slot(0)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glAccum(System.Int32 op, Single value);
@@ -135323,7 +135323,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glAlphaFunc(System.Int32 func, Single @ref);
         [Slot(16)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe byte glAreTexturesResident(Int32 n, UInt32* textures, [OutAttribute] bool* residences);
+        private static extern unsafe byte glAreTexturesResident(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences);
         [Slot(18)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glArrayElement(Int32 i);
@@ -135359,13 +135359,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBindBufferRange(System.Int32 target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(52)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindBuffersBase(System.Int32 target, UInt32 first, Int32 count, UInt32* buffers);
+        private static extern unsafe void glBindBuffersBase(System.Int32 target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers);
         [Slot(53)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindBuffersRange(System.Int32 target, UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, IntPtr* sizes);
+        private static extern unsafe void glBindBuffersRange(System.Int32 target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes);
         [Slot(54)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBindFragDataLocation(UInt32 program, UInt32 color, IntPtr name);
+        private static extern void glBindFragDataLocation(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(56)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindFragDataLocationIndexed(UInt32 program, UInt32 colorNumber, UInt32 index, IntPtr name);
@@ -135377,7 +135377,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBindImageTexture(UInt32 unit, UInt32 texture, Int32 level, bool layered, Int32 layer, System.Int32 access, System.Int32 format);
         [Slot(62)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindImageTextures(UInt32 first, Int32 count, UInt32* textures);
+        private static extern unsafe void glBindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures);
         [Slot(69)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindProgramPipeline(UInt32 pipeline);
@@ -135389,13 +135389,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBindSampler(UInt32 unit, UInt32 sampler);
         [Slot(74)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindSamplers(UInt32 first, Int32 count, UInt32* samplers);
+        private static extern unsafe void glBindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(76)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindTexture(System.Int32 target, UInt32 texture);
         [Slot(78)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindTextures(UInt32 first, Int32 count, UInt32* textures);
+        private static extern unsafe void glBindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures);
         [Slot(79)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindTextureUnit(UInt32 unit, UInt32 texture);
@@ -135410,10 +135410,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBindVertexBuffer(UInt32 bindingindex, UInt32 buffer, IntPtr offset, Int32 stride);
         [Slot(86)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindVertexBuffers(UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, Int32* strides);
+        private static extern unsafe void glBindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides);
         [Slot(101)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, Byte* bitmap);
+        private static extern unsafe void glBitmap(Int32 width, Int32 height, Single xorig, Single yorig, Single xmove, Single ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap);
         [Slot(105)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendColor(Single red, Single green, Single blue, Single alpha);
@@ -135449,19 +135449,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBlitNamedFramebuffer(UInt32 readFramebuffer, UInt32 drawFramebuffer, Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
         [Slot(133)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferStorage(System.Int32 target, IntPtr size, IntPtr data, System.Int32 flags);
+        private static extern void glBufferStorage(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 flags);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCallList(UInt32 list);
         [Slot(141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCallLists(Int32 n, System.Int32 type, IntPtr lists);
+        private static extern void glCallLists(Int32 n, System.Int32 type, [CountAttribute(Computed = "n,type")] IntPtr lists);
         [Slot(142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glCheckFramebufferStatus(System.Int32 target);
@@ -135479,22 +135479,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glClearAccum(Single red, Single green, Single blue, Single alpha);
         [Slot(151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearBufferData(System.Int32 target, System.Int32 internalformat, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearBufferData(System.Int32 target, System.Int32 internalformat, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(152)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearBufferfi(System.Int32 buffer, Int32 drawbuffer, Single depth, Int32 stencil);
         [Slot(153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, Single* value);
+        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value);
         [Slot(154)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, Int32* value);
+        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value);
         [Slot(155)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearBufferSubData(System.Int32 target, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearBufferSubData(System.Int32 target, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(156)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, UInt32* value);
+        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value);
         [Slot(157)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearColor(Single red, Single green, Single blue, Single alpha);
@@ -135530,10 +135530,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glClearStencil(Int32 s);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearTexImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearTexImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClientActiveTexture(System.Int32 texture);
@@ -135545,103 +135545,103 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glClipControl(System.Int32 origin, System.Int32 depth);
         [Slot(184)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlane(System.Int32 plane, Double* equation);
+        private static extern unsafe void glClipPlane(System.Int32 plane, [CountAttribute(Count = 4)] Double* equation);
         [Slot(187)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3b(SByte red, SByte green, SByte blue);
         [Slot(188)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3bv(SByte* v);
+        private static extern unsafe void glColor3bv([CountAttribute(Count = 3)] SByte* v);
         [Slot(189)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3d(Double red, Double green, Double blue);
         [Slot(190)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3dv(Double* v);
+        private static extern unsafe void glColor3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(191)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3f(Single red, Single green, Single blue);
         [Slot(192)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3fv(Single* v);
+        private static extern unsafe void glColor3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(197)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3i(Int32 red, Int32 green, Int32 blue);
         [Slot(198)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3iv(Int32* v);
+        private static extern unsafe void glColor3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(199)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3s(Int16 red, Int16 green, Int16 blue);
         [Slot(200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3sv(Int16* v);
+        private static extern unsafe void glColor3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(201)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3ub(Byte red, Byte green, Byte blue);
         [Slot(202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3ubv(Byte* v);
+        private static extern unsafe void glColor3ubv([CountAttribute(Count = 3)] Byte* v);
         [Slot(203)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3ui(UInt32 red, UInt32 green, UInt32 blue);
         [Slot(204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3uiv(UInt32* v);
+        private static extern unsafe void glColor3uiv([CountAttribute(Count = 3)] UInt32* v);
         [Slot(205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3us(UInt16 red, UInt16 green, UInt16 blue);
         [Slot(206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3usv(UInt16* v);
+        private static extern unsafe void glColor3usv([CountAttribute(Count = 3)] UInt16* v);
         [Slot(209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4b(SByte red, SByte green, SByte blue, SByte alpha);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4bv(SByte* v);
+        private static extern unsafe void glColor4bv([CountAttribute(Count = 4)] SByte* v);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4d(Double red, Double green, Double blue, Double alpha);
         [Slot(212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4dv(Double* v);
+        private static extern unsafe void glColor4dv([CountAttribute(Count = 4)] Double* v);
         [Slot(213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4f(Single red, Single green, Single blue, Single alpha);
         [Slot(216)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4fv(Single* v);
+        private static extern unsafe void glColor4fv([CountAttribute(Count = 4)] Single* v);
         [Slot(219)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4i(Int32 red, Int32 green, Int32 blue, Int32 alpha);
         [Slot(220)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4iv(Int32* v);
+        private static extern unsafe void glColor4iv([CountAttribute(Count = 4)] Int32* v);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4s(Int16 red, Int16 green, Int16 blue, Int16 alpha);
         [Slot(222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4sv(Int16* v);
+        private static extern unsafe void glColor4sv([CountAttribute(Count = 4)] Int16* v);
         [Slot(223)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4ub(Byte red, Byte green, Byte blue, Byte alpha);
         [Slot(224)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4ubv(Byte* v);
+        private static extern unsafe void glColor4ubv([CountAttribute(Count = 4)] Byte* v);
         [Slot(229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4ui(UInt32 red, UInt32 green, UInt32 blue, UInt32 alpha);
         [Slot(230)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4uiv(UInt32* v);
+        private static extern unsafe void glColor4uiv([CountAttribute(Count = 4)] UInt32* v);
         [Slot(231)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4us(UInt16 red, UInt16 green, UInt16 blue, UInt16 alpha);
         [Slot(232)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4usv(UInt16* v);
+        private static extern unsafe void glColor4usv([CountAttribute(Count = 4)] UInt16* v);
         [Slot(239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColorMask(bool red, bool green, bool blue, bool alpha);
@@ -135656,49 +135656,49 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glColorP3ui(System.Int32 type, UInt32 color);
         [Slot(244)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorP3uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glColorP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(245)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColorP4ui(System.Int32 type, UInt32 color);
         [Slot(246)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorP4uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glColorP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glColorPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorSubTable(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glColorSubTable(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,count")] IntPtr data);
         [Slot(253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorTable(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr table);
+        private static extern void glColorTable(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr table);
         [Slot(255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glColorTableParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glColorTableParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCompileShader(UInt32 shader);
         [Slot(276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(280)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(286)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCompressedTextureSubImage1D(UInt32 texture, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr data);
@@ -135710,22 +135710,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glCompressedTextureSubImage3D(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
         [Slot(297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter1D(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter1D(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr image);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image);
         [Slot(301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameterf(System.Int32 target, System.Int32 pname, Single @params);
         [Slot(303)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glConvolutionParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(305)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameteri(System.Int32 target, System.Int32 pname, Int32 @params);
         [Slot(307)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glConvolutionParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(311)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyBufferSubData(System.Int32 readTarget, System.Int32 writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
@@ -135800,7 +135800,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int32 glCreateShader(System.Int32 type);
         [Slot(364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glCreateTextures(System.Int32 target, Int32 n, [OutAttribute] UInt32* textures);
@@ -135818,16 +135818,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDebugMessageCallback(DebugProc callback, IntPtr userParam);
         [Slot(378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(382)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Computed = "buf,length")] IntPtr buf);
         [Slot(390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(395)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffers(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(397)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteLists(UInt32 list, Int32 range);
@@ -135836,16 +135836,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDeleteProgram(UInt32 program);
         [Slot(406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelines(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(410)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueries(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(412)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffers(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(414)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteSamplers(Int32 count, UInt32* samplers);
+        private static extern unsafe void glDeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(415)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteShader(UInt32 shader);
@@ -135854,13 +135854,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDeleteSync(IntPtr sync);
         [Slot(417)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(419)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(421)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArrays(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(426)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -135872,7 +135872,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDepthRange(Double near, Double far);
         [Slot(429)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDepthRangeArrayv(UInt32 first, Int32 count, Double* v);
+        private static extern unsafe void glDepthRangeArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v);
         [Slot(431)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthRangef(Single n, Single f);
@@ -135920,37 +135920,37 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDrawBuffer(System.Int32 buf);
         [Slot(462)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffers(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(467)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(468)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 basevertex);
+        private static extern void glDrawElementsBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex);
         [Slot(469)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawElementsIndirect(System.Int32 mode, System.Int32 type, IntPtr indirect);
         [Slot(470)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount);
+        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount);
         [Slot(472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, UInt32 baseinstance);
+        private static extern void glDrawElementsInstancedBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, UInt32 baseinstance);
         [Slot(473)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, Int32 basevertex);
+        private static extern void glDrawElementsInstancedBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount, Int32 basevertex);
         [Slot(474)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseVertexBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
+        private static extern void glDrawElementsInstancedBaseVertexBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
         [Slot(477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawPixels(Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glDrawPixels(Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(480)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(481)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElementsBaseVertex(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices, Int32 basevertex);
+        private static extern void glDrawRangeElementsBaseVertex(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex);
         [Slot(484)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawTransformFeedback(System.Int32 mode, UInt32 id);
@@ -135968,10 +135968,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glEdgeFlag(bool flag);
         [Slot(491)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glEdgeFlagPointer(Int32 stride, IntPtr pointer);
+        private static extern void glEdgeFlagPointer(Int32 stride, [CountAttribute(Computed = "stride")] IntPtr pointer);
         [Slot(494)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEdgeFlagv(bool* flag);
+        private static extern unsafe void glEdgeFlagv([CountAttribute(Count = 1)] bool* flag);
         [Slot(497)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnable(System.Int32 cap);
@@ -136010,25 +136010,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glEvalCoord1d(Double u);
         [Slot(528)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord1dv(Double* u);
+        private static extern unsafe void glEvalCoord1dv([CountAttribute(Count = 1)] Double* u);
         [Slot(529)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalCoord1f(Single u);
         [Slot(530)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord1fv(Single* u);
+        private static extern unsafe void glEvalCoord1fv([CountAttribute(Count = 1)] Single* u);
         [Slot(533)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalCoord2d(Double u, Double v);
         [Slot(534)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord2dv(Double* u);
+        private static extern unsafe void glEvalCoord2dv([CountAttribute(Count = 2)] Double* u);
         [Slot(535)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalCoord2f(Single u, Single v);
         [Slot(536)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord2fv(Single* u);
+        private static extern unsafe void glEvalCoord2fv([CountAttribute(Count = 2)] Single* u);
         [Slot(540)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalMesh1(System.Int32 mode, Int32 i1, Int32 i2);
@@ -136043,7 +136043,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glEvalPoint2(Int32 i, Int32 j);
         [Slot(546)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFeedbackBuffer(Int32 size, System.Int32 type, [OutAttribute] Single* buffer);
+        private static extern unsafe void glFeedbackBuffer(Int32 size, System.Int32 type, [OutAttribute, CountAttribute(Parameter = "size")] Single* buffer);
         [Slot(548)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glFenceSync(System.Int32 condition, System.Int32 flags);
@@ -136064,28 +136064,28 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFogCoordd(Double coord);
         [Slot(568)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogCoorddv(Double* coord);
+        private static extern unsafe void glFogCoorddv([CountAttribute(Count = 1)] Double* coord);
         [Slot(570)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogCoordf(Single coord);
         [Slot(573)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogCoordfv(Single* coord);
+        private static extern unsafe void glFogCoordfv([CountAttribute(Count = 1)] Single* coord);
         [Slot(577)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glFogCoordPointer(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glFogCoordPointer(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(580)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogf(System.Int32 pname, Single param);
         [Slot(582)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glFogfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(583)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogi(System.Int32 pname, Int32 param);
         [Slot(584)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogiv(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glFogiv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(602)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFramebufferParameteri(System.Int32 target, System.Int32 pname, Int32 param);
@@ -136115,7 +136115,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFrustum(Double left, Double right, Double bottom, Double top, Double zNear, Double zFar);
         [Slot(628)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(630)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGenerateMipmap(System.Int32 target);
@@ -136124,100 +136124,100 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glGenerateTextureMipmap(UInt32 texture);
         [Slot(638)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(640)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGenLists(Int32 range);
         [Slot(645)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(649)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(651)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(653)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute] UInt32* samplers);
+        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(655)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(657)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(659)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(662)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAtomicCounterBufferiv(UInt32 program, UInt32 bufferIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveAtomicCounterBufferiv(UInt32 program, UInt32 bufferIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(663)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(665)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveSubroutineName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] IntPtr name);
         [Slot(666)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineUniformiv(UInt32 program, System.Int32 shadertype, UInt32 index, System.Int32 pname, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetActiveSubroutineUniformiv(UInt32 program, System.Int32 shadertype, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values);
         [Slot(667)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineUniformName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveSubroutineUniformName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] IntPtr name);
         [Slot(668)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(670)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params);
         [Slot(671)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformBlockName);
+        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformBlockName);
         [Slot(672)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformName);
+        private static extern unsafe void glGetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformName);
         [Slot(673)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params);
         [Slot(678)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders);
+        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders);
         [Slot(679)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocation(UInt32 program, IntPtr name);
         [Slot(681)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data);
         [Slot(683)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(684)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(685)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(688)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(690)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data);
+        private static extern void glGetBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(692)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlane(System.Int32 plane, [OutAttribute] Double* equation);
+        private static extern unsafe void glGetClipPlane(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Double* equation);
         [Slot(695)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetColorTable(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr table);
+        private static extern void glGetColorTable(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table);
         [Slot(697)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetColorTableParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(700)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetColorTableParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(710)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetCompressedTexImage(System.Int32 target, Int32 level, [OutAttribute] IntPtr img);
+        private static extern void glGetCompressedTexImage(System.Int32 target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img);
         [Slot(712)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetCompressedTextureImage(UInt32 texture, Int32 level, Int32 bufSize, [OutAttribute] IntPtr pixels);
@@ -136226,106 +136226,106 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glGetCompressedTextureSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, Int32 bufSize, [OutAttribute] IntPtr pixels);
         [Slot(715)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetConvolutionFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr image);
+        private static extern void glGetConvolutionFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image);
         [Slot(717)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetConvolutionParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(719)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetConvolutionParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(722)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(727)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoublei_v(System.Int32 target, UInt32 index, [OutAttribute] Double* data);
+        private static extern unsafe void glGetDoublei_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data);
         [Slot(730)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoublev(System.Int32 pname, [OutAttribute] Double* data);
+        private static extern unsafe void glGetDoublev(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* data);
         [Slot(731)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
         [Slot(737)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloati_v(System.Int32 target, UInt32 index, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloati_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data);
         [Slot(740)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(742)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetFragDataIndex(UInt32 program, IntPtr name);
         [Slot(743)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetFragDataLocation(UInt32 program, IntPtr name);
+        private static extern Int32 glGetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(749)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(751)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(753)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatus();
         [Slot(757)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetHistogram(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetHistogram(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(759)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetHistogramParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(761)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetHistogramParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(770)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data);
         [Slot(771)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data);
         [Slot(772)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data);
         [Slot(776)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(777)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformati64v(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetInternalformati64v(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64* @params);
         [Slot(778)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(782)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightfv(System.Int32 light, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetLightfv(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(783)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightiv(System.Int32 light, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetLightiv(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(794)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapdv(System.Int32 target, System.Int32 query, [OutAttribute] Double* v);
+        private static extern unsafe void glGetMapdv(System.Int32 target, System.Int32 query, [OutAttribute, CountAttribute(Computed = "target,query")] Double* v);
         [Slot(795)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapfv(System.Int32 target, System.Int32 query, [OutAttribute] Single* v);
+        private static extern unsafe void glGetMapfv(System.Int32 target, System.Int32 query, [OutAttribute, CountAttribute(Computed = "target,query")] Single* v);
         [Slot(796)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapiv(System.Int32 target, System.Int32 query, [OutAttribute] Int32* v);
+        private static extern unsafe void glGetMapiv(System.Int32 target, System.Int32 query, [OutAttribute, CountAttribute(Computed = "target,query")] Int32* v);
         [Slot(800)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialfv(System.Int32 face, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMaterialfv(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(801)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialiv(System.Int32 face, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMaterialiv(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(804)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetMinmax(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetMinmax(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(806)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMinmaxParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(808)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMinmaxParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(810)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute] Single* val);
+        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val);
         [Slot(824)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetNamedBufferParameteri64v(UInt32 buffer, System.Int32 pname, [OutAttribute] Int64* @params);
@@ -136403,112 +136403,112 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glGetnUniformuiv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(888)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(894)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(921)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelMapfv(System.Int32 map, [OutAttribute] Single* values);
+        private static extern unsafe void glGetPixelMapfv(System.Int32 map, [OutAttribute, CountAttribute(Computed = "map")] Single* values);
         [Slot(922)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelMapuiv(System.Int32 map, [OutAttribute] UInt32* values);
+        private static extern unsafe void glGetPixelMapuiv(System.Int32 map, [OutAttribute, CountAttribute(Computed = "map")] UInt32* values);
         [Slot(923)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelMapusv(System.Int32 map, [OutAttribute] UInt16* values);
+        private static extern unsafe void glGetPixelMapusv(System.Int32 map, [OutAttribute, CountAttribute(Computed = "map")] UInt16* values);
         [Slot(924)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelMapxv(System.Int32 map, Int32 size, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetPixelMapxv(System.Int32 map, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* values);
         [Slot(931)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(934)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPolygonStipple([OutAttribute] Byte* mask);
+        private static extern unsafe void glGetPolygonStipple([OutAttribute, CountAttribute(Computed = "")] Byte* mask);
         [Slot(935)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(940)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(941)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(942)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(953)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(955)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(958)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(959)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, System.Int32* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] System.Int32* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(960)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(961)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceLocationIndex(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceLocationIndex(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(962)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(963)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramStageiv(UInt32 program, System.Int32 shadertype, System.Int32 pname, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetProgramStageiv(UInt32 program, System.Int32 shadertype, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values);
         [Slot(967)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryIndexediv(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryIndexediv(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(968)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(970)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64v(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64v(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(972)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectiv(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryObjectiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(974)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64v(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64v(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(976)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(978)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(980)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(981)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(982)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(983)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(984)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetSeparableFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span);
+        private static extern void glGetSeparableFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span);
         [Slot(986)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(987)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(988)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision);
+        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision);
         [Slot(989)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr source);
         [Slot(992)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
@@ -136523,43 +136523,43 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int32 glGetSubroutineUniformLocation(UInt32 program, System.Int32 shadertype, IntPtr name);
         [Slot(996)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(999)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnvfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexEnvfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1000)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnviv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexEnviv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1003)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGendv(System.Int32 coord, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetTexGendv(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(1004)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGenfv(System.Int32 coord, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexGenfv(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1005)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGeniv(System.Int32 coord, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexGeniv(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1007)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetTexImage(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glGetTexImage(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels);
         [Slot(1008)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1009)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1011)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1012)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1014)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuiv(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(1016)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1021)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetTextureImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr pixels);
@@ -136595,31 +136595,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glGetTransformFeedbackiv(UInt32 xfb, System.Int32 pname, [OutAttribute] Int32* param);
         [Slot(1042)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(1045)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetUniformBlockIndex(UInt32 program, IntPtr uniformBlockName);
+        private static extern Int32 glGetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] IntPtr uniformBlockName);
         [Slot(1047)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformdv(UInt32 program, Int32 location, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetUniformdv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params);
         [Slot(1048)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params);
         [Slot(1051)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, IntPtr uniformNames, [OutAttribute] UInt32* uniformIndices);
+        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] IntPtr uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices);
         [Slot(1052)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params);
         [Slot(1054)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocation(UInt32 program, IntPtr name);
         [Slot(1057)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformSubroutineuiv(System.Int32 shadertype, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformSubroutineuiv(System.Int32 shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(1059)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params);
         [Slot(1068)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetVertexArrayIndexed64iv(UInt32 vaobj, UInt32 index, System.Int32 pname, [OutAttribute] Int64* param);
@@ -136631,25 +136631,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glGetVertexArrayiv(UInt32 vaobj, System.Int32 pname, [OutAttribute] Int32* param);
         [Slot(1077)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribdv(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribdv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(1080)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(1083)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(1085)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(1087)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(1090)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribLdv(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribLdv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(1095)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(1114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
@@ -136661,43 +136661,43 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glIndexd(Double c);
         [Slot(1125)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexdv(Double* c);
+        private static extern unsafe void glIndexdv([CountAttribute(Count = 1)] Double* c);
         [Slot(1126)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexf(Single c);
         [Slot(1129)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexfv(Single* c);
+        private static extern unsafe void glIndexfv([CountAttribute(Count = 1)] Single* c);
         [Slot(1130)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexi(Int32 c);
         [Slot(1131)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexiv(Int32* c);
+        private static extern unsafe void glIndexiv([CountAttribute(Count = 1)] Int32* c);
         [Slot(1132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexMask(UInt32 mask);
         [Slot(1134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glIndexPointer(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glIndexPointer(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(1137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexs(Int16 c);
         [Slot(1138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexsv(Int16* c);
+        private static extern unsafe void glIndexsv([CountAttribute(Count = 1)] Int16* c);
         [Slot(1139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexub(Byte c);
         [Slot(1140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexubv(Byte* c);
+        private static extern unsafe void glIndexubv([CountAttribute(Count = 1)] Byte* c);
         [Slot(1143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInitNames();
         [Slot(1147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glInterleavedArrays(System.Int32 format, Int32 stride, IntPtr pointer);
+        private static extern void glInterleavedArrays(System.Int32 format, Int32 stride, [CountAttribute(Computed = "format,stride")] IntPtr pointer);
         [Slot(1149)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInvalidateBufferData(UInt32 buffer);
@@ -136706,7 +136706,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glInvalidateBufferSubData(UInt32 buffer, IntPtr offset, IntPtr length);
         [Slot(1151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(1152)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glInvalidateNamedFramebufferData(UInt32 framebuffer, Int32 numAttachments, System.Int32* attachments);
@@ -136715,7 +136715,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glInvalidateNamedFramebufferSubData(UInt32 framebuffer, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(1154)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
+        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(1155)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInvalidateTexImage(UInt32 texture, Int32 level);
@@ -136772,25 +136772,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glLightf(System.Int32 light, System.Int32 pname, Single param);
         [Slot(1204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightfv(System.Int32 light, System.Int32 pname, Single* @params);
+        private static extern unsafe void glLightfv(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLighti(System.Int32 light, System.Int32 pname, Int32 param);
         [Slot(1206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightiv(System.Int32 light, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glLightiv(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightModelf(System.Int32 pname, Single param);
         [Slot(1208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModelfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glLightModelfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightModeli(System.Int32 pname, Int32 param);
         [Slot(1210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModeliv(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glLightModeliv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1215)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLineStipple(Int32 factor, UInt16 pattern);
@@ -136808,34 +136808,34 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glLoadIdentity();
         [Slot(1227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixd(Double* m);
+        private static extern unsafe void glLoadMatrixd([CountAttribute(Count = 16)] Double* m);
         [Slot(1228)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixf(Single* m);
+        private static extern unsafe void glLoadMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(1230)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLoadName(UInt32 name);
         [Slot(1232)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixd(Double* m);
+        private static extern unsafe void glLoadTransposeMatrixd([CountAttribute(Count = 16)] Double* m);
         [Slot(1234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixf(Single* m);
+        private static extern unsafe void glLoadTransposeMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(1238)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLogicOp(System.Int32 opcode);
         [Slot(1251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMap1d(System.Int32 target, Double u1, Double u2, Int32 stride, Int32 order, Double* points);
+        private static extern unsafe void glMap1d(System.Int32 target, Double u1, Double u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Double* points);
         [Slot(1252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMap1f(System.Int32 target, Single u1, Single u2, Int32 stride, Int32 order, Single* points);
+        private static extern unsafe void glMap1f(System.Int32 target, Single u1, Single u2, Int32 stride, Int32 order, [CountAttribute(Computed = "target,stride,order")] Single* points);
         [Slot(1254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMap2d(System.Int32 target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double* points);
+        private static extern unsafe void glMap2d(System.Int32 target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Double* points);
         [Slot(1255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMap2f(System.Int32 target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single* points);
+        private static extern unsafe void glMap2f(System.Int32 target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder")] Single* points);
         [Slot(1257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glMapBuffer(System.Int32 target, System.Int32 access);
@@ -136865,13 +136865,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMaterialf(System.Int32 face, System.Int32 pname, Single param);
         [Slot(1280)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialfv(System.Int32 face, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMaterialfv(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMateriali(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(1282)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialiv(System.Int32 face, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMaterialiv(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1298)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMatrixMode(System.Int32 mode);
@@ -136889,151 +136889,151 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMinSampleShading(Single value);
         [Slot(1322)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArrays(System.Int32 mode, Int32* first, Int32* count, Int32 drawcount);
+        private static extern unsafe void glMultiDrawArrays(System.Int32 mode, [CountAttribute(Computed = "count")] Int32* first, [CountAttribute(Computed = "drawcount")] Int32* count, Int32 drawcount);
         [Slot(1324)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiDrawArraysIndirect(System.Int32 mode, IntPtr indirect, Int32 drawcount, Int32 stride);
+        private static extern void glMultiDrawArraysIndirect(System.Int32 mode, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride);
         [Slot(1330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElements(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 drawcount);
+        private static extern unsafe void glMultiDrawElements(System.Int32 mode, [CountAttribute(Computed = "drawcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount);
         [Slot(1331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsBaseVertex(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 drawcount, Int32* basevertex);
+        private static extern unsafe void glMultiDrawElementsBaseVertex(System.Int32 mode, [CountAttribute(Computed = "drawcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex);
         [Slot(1333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiDrawElementsIndirect(System.Int32 mode, System.Int32 type, IntPtr indirect, Int32 drawcount, Int32 stride);
+        private static extern void glMultiDrawElementsIndirect(System.Int32 mode, System.Int32 type, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride);
         [Slot(1344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1d(System.Int32 target, Double s);
         [Slot(1346)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1dv(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord1dv(System.Int32 target, [CountAttribute(Count = 1)] Double* v);
         [Slot(1348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1f(System.Int32 target, Single s);
         [Slot(1350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1fv(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord1fv(System.Int32 target, [CountAttribute(Count = 1)] Single* v);
         [Slot(1354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1i(System.Int32 target, Int32 s);
         [Slot(1356)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1iv(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord1iv(System.Int32 target, [CountAttribute(Count = 1)] Int32* v);
         [Slot(1358)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1s(System.Int32 target, Int16 s);
         [Slot(1360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1sv(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord1sv(System.Int32 target, [CountAttribute(Count = 1)] Int16* v);
         [Slot(1366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2d(System.Int32 target, Double s, Double t);
         [Slot(1368)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2dv(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord2dv(System.Int32 target, [CountAttribute(Count = 2)] Double* v);
         [Slot(1370)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2f(System.Int32 target, Single s, Single t);
         [Slot(1372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2fv(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord2fv(System.Int32 target, [CountAttribute(Count = 2)] Single* v);
         [Slot(1376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2i(System.Int32 target, Int32 s, Int32 t);
         [Slot(1378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2iv(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord2iv(System.Int32 target, [CountAttribute(Count = 2)] Int32* v);
         [Slot(1380)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2s(System.Int32 target, Int16 s, Int16 t);
         [Slot(1382)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2sv(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord2sv(System.Int32 target, [CountAttribute(Count = 2)] Int16* v);
         [Slot(1388)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3d(System.Int32 target, Double s, Double t, Double r);
         [Slot(1390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3dv(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord3dv(System.Int32 target, [CountAttribute(Count = 3)] Double* v);
         [Slot(1392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3f(System.Int32 target, Single s, Single t, Single r);
         [Slot(1394)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3fv(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord3fv(System.Int32 target, [CountAttribute(Count = 3)] Single* v);
         [Slot(1398)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3i(System.Int32 target, Int32 s, Int32 t, Int32 r);
         [Slot(1400)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3iv(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord3iv(System.Int32 target, [CountAttribute(Count = 3)] Int32* v);
         [Slot(1402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3s(System.Int32 target, Int16 s, Int16 t, Int16 r);
         [Slot(1404)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3sv(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord3sv(System.Int32 target, [CountAttribute(Count = 3)] Int16* v);
         [Slot(1410)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4d(System.Int32 target, Double s, Double t, Double r, Double q);
         [Slot(1412)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4dv(System.Int32 target, Double* v);
+        private static extern unsafe void glMultiTexCoord4dv(System.Int32 target, [CountAttribute(Count = 4)] Double* v);
         [Slot(1414)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4f(System.Int32 target, Single s, Single t, Single r, Single q);
         [Slot(1416)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4fv(System.Int32 target, Single* v);
+        private static extern unsafe void glMultiTexCoord4fv(System.Int32 target, [CountAttribute(Count = 4)] Single* v);
         [Slot(1420)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4i(System.Int32 target, Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(1422)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4iv(System.Int32 target, Int32* v);
+        private static extern unsafe void glMultiTexCoord4iv(System.Int32 target, [CountAttribute(Count = 4)] Int32* v);
         [Slot(1424)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4s(System.Int32 target, Int16 s, Int16 t, Int16 r, Int16 q);
         [Slot(1426)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4sv(System.Int32 target, Int16* v);
+        private static extern unsafe void glMultiTexCoord4sv(System.Int32 target, [CountAttribute(Count = 4)] Int16* v);
         [Slot(1430)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP1ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(1431)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP1uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP1uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(1432)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP2ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(1433)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP2uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP2uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(1434)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP3ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(1435)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP3uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP3uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(1436)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP4ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(1437)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP4uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP4uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(1462)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixd(Double* m);
+        private static extern unsafe void glMultMatrixd([CountAttribute(Count = 16)] Double* m);
         [Slot(1463)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixf(Single* m);
+        private static extern unsafe void glMultMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(1465)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixd(Double* m);
+        private static extern unsafe void glMultTransposeMatrixd([CountAttribute(Count = 16)] Double* m);
         [Slot(1467)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixf(Single* m);
+        private static extern unsafe void glMultTransposeMatrixf([CountAttribute(Count = 16)] Single* m);
         [Slot(1470)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedBufferData(UInt32 buffer, Int32 size, IntPtr data, System.Int32 usage);
@@ -137078,46 +137078,46 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glNormal3b(SByte nx, SByte ny, SByte nz);
         [Slot(1515)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3bv(SByte* v);
+        private static extern unsafe void glNormal3bv([CountAttribute(Count = 3)] SByte* v);
         [Slot(1516)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3d(Double nx, Double ny, Double nz);
         [Slot(1517)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3dv(Double* v);
+        private static extern unsafe void glNormal3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(1518)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3f(Single nx, Single ny, Single nz);
         [Slot(1519)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3fv(Single* v);
+        private static extern unsafe void glNormal3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(1524)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3i(Int32 nx, Int32 ny, Int32 nz);
         [Slot(1525)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3iv(Int32* v);
+        private static extern unsafe void glNormal3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(1526)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3s(Int16 nx, Int16 ny, Int16 nz);
         [Slot(1527)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3sv(Int16* v);
+        private static extern unsafe void glNormal3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(1531)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalP3ui(System.Int32 type, UInt32 coords);
         [Slot(1532)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalP3uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glNormalP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(1533)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNormalPointer(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glNormalPointer(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(1547)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, IntPtr label);
+        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(1549)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, IntPtr label);
+        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(1553)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glOrtho(Double left, Double right, Double bottom, Double top, Double zNear, Double zFar);
@@ -137126,7 +137126,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPassThrough(Single token);
         [Slot(1559)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPatchParameterfv(System.Int32 pname, Single* values);
+        private static extern unsafe void glPatchParameterfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* values);
         [Slot(1560)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPatchParameteri(System.Int32 pname, Int32 value);
@@ -137135,16 +137135,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPauseTransformFeedback();
         [Slot(1585)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelMapfv(System.Int32 map, Int32 mapsize, Single* values);
+        private static extern unsafe void glPixelMapfv(System.Int32 map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] Single* values);
         [Slot(1586)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelMapuiv(System.Int32 map, Int32 mapsize, UInt32* values);
+        private static extern unsafe void glPixelMapuiv(System.Int32 map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt32* values);
         [Slot(1587)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelMapusv(System.Int32 map, Int32 mapsize, UInt16* values);
+        private static extern unsafe void glPixelMapusv(System.Int32 map, Int32 mapsize, [CountAttribute(Parameter = "mapsize")] UInt16* values);
         [Slot(1588)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelMapx(System.Int32 map, Int32 size, Int32* values);
+        private static extern unsafe void glPixelMapx(System.Int32 map, Int32 size, [CountAttribute(Parameter = "size")] Int32* values);
         [Slot(1589)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelStoref(System.Int32 pname, Single param);
@@ -137168,13 +137168,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPointParameterf(System.Int32 pname, Single param);
         [Slot(1613)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1617)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameteri(System.Int32 pname, Int32 param);
         [Slot(1619)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameteriv(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameteriv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1623)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointSize(Single size);
@@ -137186,7 +137186,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPolygonOffset(Single factor, Single units);
         [Slot(1631)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPolygonStipple(Byte* mask);
+        private static extern unsafe void glPolygonStipple([CountAttribute(Computed = "")] Byte* mask);
         [Slot(1632)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPopAttrib();
@@ -137207,10 +137207,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPrimitiveRestartIndex(UInt32 index);
         [Slot(1644)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPrioritizeTextures(Int32 n, UInt32* textures, Single* priorities);
+        private static extern unsafe void glPrioritizeTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Single* priorities);
         [Slot(1647)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(1681)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteri(UInt32 program, System.Int32 pname, Int32 value);
@@ -137219,151 +137219,151 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glProgramUniform1d(UInt32 program, Int32 location, Double v0);
         [Slot(1691)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform1dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value);
         [Slot(1693)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1f(UInt32 program, Int32 location, Single v0);
         [Slot(1695)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value);
         [Slot(1697)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1i(UInt32 program, Int32 location, Int32 v0);
         [Slot(1701)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value);
         [Slot(1703)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1ui(UInt32 program, Int32 location, UInt32 v0);
         [Slot(1707)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(1709)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2d(UInt32 program, Int32 location, Double v0, Double v1);
         [Slot(1711)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform2dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value);
         [Slot(1713)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2f(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(1715)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value);
         [Slot(1717)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2i(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(1721)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value);
         [Slot(1723)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(1727)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value);
         [Slot(1729)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3d(UInt32 program, Int32 location, Double v0, Double v1, Double v2);
         [Slot(1731)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform3dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value);
         [Slot(1733)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3f(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(1735)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value);
         [Slot(1737)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(1741)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value);
         [Slot(1743)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(1747)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value);
         [Slot(1749)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4d(UInt32 program, Int32 location, Double v0, Double v1, Double v2, Double v3);
         [Slot(1751)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform4dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value);
         [Slot(1753)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4f(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(1755)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value);
         [Slot(1757)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(1761)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value);
         [Slot(1763)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(1767)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value);
         [Slot(1773)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value);
         [Slot(1775)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value);
         [Slot(1777)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1779)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1781)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1783)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1785)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value);
         [Slot(1787)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value);
         [Slot(1789)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1791)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1793)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1795)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1797)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value);
         [Slot(1799)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value);
         [Slot(1801)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1803)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1805)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1807)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1812)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProvokingVertex(System.Int32 mode);
@@ -137375,7 +137375,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPushClientAttrib(System.Int32 mask);
         [Slot(1817)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
+        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] IntPtr message);
         [Slot(1820)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPushMatrix();
@@ -137390,73 +137390,73 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glRasterPos2d(Double x, Double y);
         [Slot(1826)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2dv(Double* v);
+        private static extern unsafe void glRasterPos2dv([CountAttribute(Count = 2)] Double* v);
         [Slot(1827)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos2f(Single x, Single y);
         [Slot(1828)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2fv(Single* v);
+        private static extern unsafe void glRasterPos2fv([CountAttribute(Count = 2)] Single* v);
         [Slot(1829)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos2i(Int32 x, Int32 y);
         [Slot(1830)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2iv(Int32* v);
+        private static extern unsafe void glRasterPos2iv([CountAttribute(Count = 2)] Int32* v);
         [Slot(1831)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos2s(Int16 x, Int16 y);
         [Slot(1832)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2sv(Int16* v);
+        private static extern unsafe void glRasterPos2sv([CountAttribute(Count = 2)] Int16* v);
         [Slot(1835)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3d(Double x, Double y, Double z);
         [Slot(1836)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3dv(Double* v);
+        private static extern unsafe void glRasterPos3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(1837)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3f(Single x, Single y, Single z);
         [Slot(1838)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3fv(Single* v);
+        private static extern unsafe void glRasterPos3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(1839)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3i(Int32 x, Int32 y, Int32 z);
         [Slot(1840)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3iv(Int32* v);
+        private static extern unsafe void glRasterPos3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(1841)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3s(Int16 x, Int16 y, Int16 z);
         [Slot(1842)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3sv(Int16* v);
+        private static extern unsafe void glRasterPos3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(1845)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4d(Double x, Double y, Double z, Double w);
         [Slot(1846)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4dv(Double* v);
+        private static extern unsafe void glRasterPos4dv([CountAttribute(Count = 4)] Double* v);
         [Slot(1847)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4f(Single x, Single y, Single z, Single w);
         [Slot(1848)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4fv(Single* v);
+        private static extern unsafe void glRasterPos4fv([CountAttribute(Count = 4)] Single* v);
         [Slot(1849)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4i(Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(1850)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4iv(Int32* v);
+        private static extern unsafe void glRasterPos4iv([CountAttribute(Count = 4)] Int32* v);
         [Slot(1851)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4s(Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(1852)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4sv(Int16* v);
+        private static extern unsafe void glRasterPos4sv([CountAttribute(Count = 4)] Int16* v);
         [Slot(1855)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReadBuffer(System.Int32 src);
@@ -137465,31 +137465,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
         [Slot(1860)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(1861)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRectd(Double x1, Double y1, Double x2, Double y2);
         [Slot(1862)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectdv(Double* v1, Double* v2);
+        private static extern unsafe void glRectdv([CountAttribute(Count = 2)] Double* v1, [CountAttribute(Count = 2)] Double* v2);
         [Slot(1863)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRectf(Single x1, Single y1, Single x2, Single y2);
         [Slot(1864)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectfv(Single* v1, Single* v2);
+        private static extern unsafe void glRectfv([CountAttribute(Count = 2)] Single* v1, [CountAttribute(Count = 2)] Single* v2);
         [Slot(1865)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRecti(Int32 x1, Int32 y1, Int32 x2, Int32 y2);
         [Slot(1866)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectiv(Int32* v1, Int32* v2);
+        private static extern unsafe void glRectiv([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2);
         [Slot(1867)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRects(Int16 x1, Int16 y1, Int16 x2, Int16 y2);
         [Slot(1868)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectsv(Int16* v1, Int16* v2);
+        private static extern unsafe void glRectsv([CountAttribute(Count = 2)] Int16* v1, [CountAttribute(Count = 2)] Int16* v2);
         [Slot(1872)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReleaseShaderCompiler();
@@ -137528,19 +137528,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSamplerParameterf(UInt32 sampler, System.Int32 pname, Single param);
         [Slot(1925)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, Single* param);
+        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* param);
         [Slot(1926)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSamplerParameteri(UInt32 sampler, System.Int32 pname, Int32 param);
         [Slot(1927)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIiv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(1928)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, UInt32* param);
+        private static extern unsafe void glSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* param);
         [Slot(1929)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(1930)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScaled(Double x, Double y, Double z);
@@ -137552,85 +137552,85 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glScissor(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(1934)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glScissorArrayv(UInt32 first, Int32 count, Int32* v);
+        private static extern unsafe void glScissorArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v);
         [Slot(1935)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScissorIndexed(UInt32 index, Int32 left, Int32 bottom, Int32 width, Int32 height);
         [Slot(1936)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glScissorIndexedv(UInt32 index, Int32* v);
+        private static extern unsafe void glScissorIndexedv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(1937)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3b(SByte red, SByte green, SByte blue);
         [Slot(1939)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3bv(SByte* v);
+        private static extern unsafe void glSecondaryColor3bv([CountAttribute(Count = 3)] SByte* v);
         [Slot(1941)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3d(Double red, Double green, Double blue);
         [Slot(1943)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3dv(Double* v);
+        private static extern unsafe void glSecondaryColor3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(1945)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3f(Single red, Single green, Single blue);
         [Slot(1947)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3fv(Single* v);
+        private static extern unsafe void glSecondaryColor3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(1951)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3i(Int32 red, Int32 green, Int32 blue);
         [Slot(1953)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3iv(Int32* v);
+        private static extern unsafe void glSecondaryColor3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(1955)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3s(Int16 red, Int16 green, Int16 blue);
         [Slot(1957)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3sv(Int16* v);
+        private static extern unsafe void glSecondaryColor3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(1959)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3ub(Byte red, Byte green, Byte blue);
         [Slot(1961)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3ubv(Byte* v);
+        private static extern unsafe void glSecondaryColor3ubv([CountAttribute(Count = 3)] Byte* v);
         [Slot(1963)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3ui(UInt32 red, UInt32 green, UInt32 blue);
         [Slot(1965)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3uiv(UInt32* v);
+        private static extern unsafe void glSecondaryColor3uiv([CountAttribute(Count = 3)] UInt32* v);
         [Slot(1967)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3us(UInt16 red, UInt16 green, UInt16 blue);
         [Slot(1969)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3usv(UInt16* v);
+        private static extern unsafe void glSecondaryColor3usv([CountAttribute(Count = 3)] UInt16* v);
         [Slot(1972)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColorP3ui(System.Int32 type, UInt32 color);
         [Slot(1973)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColorP3uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glSecondaryColorP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(1974)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSecondaryColorPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glSecondaryColorPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(1977)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSelectBuffer(Int32 size, [OutAttribute] UInt32* buffer);
+        private static extern unsafe void glSelectBuffer(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] UInt32* buffer);
         [Slot(1979)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSeparableFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr row, IntPtr column);
+        private static extern void glSeparableFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column);
         [Slot(1987)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glShadeModel(System.Int32 mode);
         [Slot(1988)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderBinary(Int32 count, UInt32* shaders, System.Int32 binaryformat, IntPtr binary, Int32 length);
+        private static extern unsafe void glShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, System.Int32 binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(1992)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(1994)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glShaderStorageBlockBinding(UInt32 program, UInt32 storageBlockIndex, UInt32 storageBlockBinding);
@@ -137663,166 +137663,166 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTexCoord1d(Double s);
         [Slot(2050)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1dv(Double* v);
+        private static extern unsafe void glTexCoord1dv([CountAttribute(Count = 1)] Double* v);
         [Slot(2051)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord1f(Single s);
         [Slot(2052)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1fv(Single* v);
+        private static extern unsafe void glTexCoord1fv([CountAttribute(Count = 1)] Single* v);
         [Slot(2055)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord1i(Int32 s);
         [Slot(2056)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1iv(Int32* v);
+        private static extern unsafe void glTexCoord1iv([CountAttribute(Count = 1)] Int32* v);
         [Slot(2057)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord1s(Int16 s);
         [Slot(2058)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1sv(Int16* v);
+        private static extern unsafe void glTexCoord1sv([CountAttribute(Count = 1)] Int16* v);
         [Slot(2063)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2d(Double s, Double t);
         [Slot(2064)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2dv(Double* v);
+        private static extern unsafe void glTexCoord2dv([CountAttribute(Count = 2)] Double* v);
         [Slot(2065)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2f(Single s, Single t);
         [Slot(2074)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fv(Single* v);
+        private static extern unsafe void glTexCoord2fv([CountAttribute(Count = 2)] Single* v);
         [Slot(2079)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2i(Int32 s, Int32 t);
         [Slot(2080)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2iv(Int32* v);
+        private static extern unsafe void glTexCoord2iv([CountAttribute(Count = 2)] Int32* v);
         [Slot(2081)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2s(Int16 s, Int16 t);
         [Slot(2082)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2sv(Int16* v);
+        private static extern unsafe void glTexCoord2sv([CountAttribute(Count = 2)] Int16* v);
         [Slot(2087)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3d(Double s, Double t, Double r);
         [Slot(2088)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3dv(Double* v);
+        private static extern unsafe void glTexCoord3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(2089)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3f(Single s, Single t, Single r);
         [Slot(2090)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3fv(Single* v);
+        private static extern unsafe void glTexCoord3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(2093)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3i(Int32 s, Int32 t, Int32 r);
         [Slot(2094)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3iv(Int32* v);
+        private static extern unsafe void glTexCoord3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(2095)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3s(Int16 s, Int16 t, Int16 r);
         [Slot(2096)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3sv(Int16* v);
+        private static extern unsafe void glTexCoord3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(2101)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4d(Double s, Double t, Double r, Double q);
         [Slot(2102)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4dv(Double* v);
+        private static extern unsafe void glTexCoord4dv([CountAttribute(Count = 4)] Double* v);
         [Slot(2103)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4f(Single s, Single t, Single r, Single q);
         [Slot(2106)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4fv(Single* v);
+        private static extern unsafe void glTexCoord4fv([CountAttribute(Count = 4)] Single* v);
         [Slot(2111)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4i(Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(2112)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4iv(Int32* v);
+        private static extern unsafe void glTexCoord4iv([CountAttribute(Count = 4)] Int32* v);
         [Slot(2113)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4s(Int16 s, Int16 t, Int16 r, Int16 q);
         [Slot(2114)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4sv(Int16* v);
+        private static extern unsafe void glTexCoord4sv([CountAttribute(Count = 4)] Int16* v);
         [Slot(2118)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP1ui(System.Int32 type, UInt32 coords);
         [Slot(2119)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP1uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP1uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(2120)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP2ui(System.Int32 type, UInt32 coords);
         [Slot(2121)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP2uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP2uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(2122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP3ui(System.Int32 type, UInt32 coords);
         [Slot(2123)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP3uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(2124)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP4ui(System.Int32 type, UInt32 coords);
         [Slot(2125)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP4uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(2126)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexCoordPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glTexCoordPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2130)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(2131)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnvfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexEnvfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(2132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvi(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(2133)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnviv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexEnviv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGend(System.Int32 coord, System.Int32 pname, Double param);
         [Slot(2138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGendv(System.Int32 coord, System.Int32 pname, Double* @params);
+        private static extern unsafe void glTexGendv(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Double* @params);
         [Slot(2139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGenf(System.Int32 coord, System.Int32 pname, Single param);
         [Slot(2140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGenfv(System.Int32 coord, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexGenfv(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(2141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGeni(System.Int32 coord, System.Int32 pname, Int32 param);
         [Slot(2142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGeniv(System.Int32 coord, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexGeniv(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2145)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(2146)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(2147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexImage2DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, bool fixedsamplelocations);
         [Slot(2149)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2151)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexImage3DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
@@ -137831,19 +137831,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(2156)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(2157)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(2158)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIiv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIiv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2160)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuiv(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuiv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(2162)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2166)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage1D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width);
@@ -137861,13 +137861,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTexStorage3DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(2172)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(2174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(2176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureBarrier();
@@ -137930,7 +137930,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTransformFeedbackBufferRange(UInt32 xfb, UInt32 index, UInt32 buffer, IntPtr offset, Int32 size);
         [Slot(2234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, IntPtr varyings, System.Int32 bufferMode);
+        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] IntPtr varyings, System.Int32 bufferMode);
         [Slot(2238)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTranslated(Double x, Double y, Double z);
@@ -137942,157 +137942,157 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glUniform1d(Int32 location, Double x);
         [Slot(2242)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform1dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double* value);
         [Slot(2243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1f(Int32 location, Single v0);
         [Slot(2245)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(2247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i(Int32 location, Int32 v0);
         [Slot(2251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(2253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1ui(Int32 location, UInt32 v0);
         [Slot(2257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value);
         [Slot(2259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2d(Int32 location, Double x, Double y);
         [Slot(2260)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform2dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double* value);
         [Slot(2261)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2f(Int32 location, Single v0, Single v1);
         [Slot(2263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(2265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i(Int32 location, Int32 v0, Int32 v1);
         [Slot(2269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(2271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2ui(Int32 location, UInt32 v0, UInt32 v1);
         [Slot(2275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(2277)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3d(Int32 location, Double x, Double y, Double z);
         [Slot(2278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform3dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double* value);
         [Slot(2279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3f(Int32 location, Single v0, Single v1, Single v2);
         [Slot(2281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(2283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(2287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(2289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(2293)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(2295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4d(Int32 location, Double x, Double y, Double z, Double w);
         [Slot(2296)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform4dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double* value);
         [Slot(2297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4f(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(2299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(2301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(2305)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(2307)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(2311)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(2313)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding);
         [Slot(2319)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double* value);
         [Slot(2320)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(2322)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2x3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value);
         [Slot(2323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(2324)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2x4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value);
         [Slot(2325)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(2326)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double* value);
         [Slot(2327)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(2329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3x2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value);
         [Slot(2330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(2331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3x4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value);
         [Slot(2332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(2333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double* value);
         [Slot(2334)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(2336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4x2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value);
         [Slot(2337)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(2338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4x3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value);
         [Slot(2339)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(2340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformSubroutinesuiv(System.Int32 shadertype, Int32 count, UInt32* indices);
+        private static extern unsafe void glUniformSubroutinesuiv(System.Int32 shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32* indices);
         [Slot(2344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBuffer(System.Int32 target);
@@ -138116,73 +138116,73 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertex2d(Double x, Double y);
         [Slot(2383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2dv(Double* v);
+        private static extern unsafe void glVertex2dv([CountAttribute(Count = 2)] Double* v);
         [Slot(2384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex2f(Single x, Single y);
         [Slot(2385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2fv(Single* v);
+        private static extern unsafe void glVertex2fv([CountAttribute(Count = 2)] Single* v);
         [Slot(2388)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex2i(Int32 x, Int32 y);
         [Slot(2389)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2iv(Int32* v);
+        private static extern unsafe void glVertex2iv([CountAttribute(Count = 2)] Int32* v);
         [Slot(2390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex2s(Int16 x, Int16 y);
         [Slot(2391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2sv(Int16* v);
+        private static extern unsafe void glVertex2sv([CountAttribute(Count = 2)] Int16* v);
         [Slot(2396)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3d(Double x, Double y, Double z);
         [Slot(2397)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3dv(Double* v);
+        private static extern unsafe void glVertex3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(2398)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3f(Single x, Single y, Single z);
         [Slot(2399)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3fv(Single* v);
+        private static extern unsafe void glVertex3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(2402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3i(Int32 x, Int32 y, Int32 z);
         [Slot(2403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3iv(Int32* v);
+        private static extern unsafe void glVertex3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(2404)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3s(Int16 x, Int16 y, Int16 z);
         [Slot(2405)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3sv(Int16* v);
+        private static extern unsafe void glVertex3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(2410)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4d(Double x, Double y, Double z, Double w);
         [Slot(2411)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4dv(Double* v);
+        private static extern unsafe void glVertex4dv([CountAttribute(Count = 4)] Double* v);
         [Slot(2412)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4f(Single x, Single y, Single z, Single w);
         [Slot(2413)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4fv(Single* v);
+        private static extern unsafe void glVertex4fv([CountAttribute(Count = 4)] Single* v);
         [Slot(2416)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4i(Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(2417)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4iv(Int32* v);
+        private static extern unsafe void glVertex4iv([CountAttribute(Count = 4)] Int32* v);
         [Slot(2418)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4s(Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2419)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4sv(Int16* v);
+        private static extern unsafe void glVertex4sv([CountAttribute(Count = 4)] Int16* v);
         [Slot(2422)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexArrayAttribBinding(UInt32 vaobj, UInt32 attribindex, UInt32 bindingindex);
@@ -138212,109 +138212,109 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexAttrib1d(UInt32 index, Double x);
         [Slot(2455)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib1dv(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(2458)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1f(UInt32 index, Single x);
         [Slot(2461)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fv(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(2466)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1s(UInt32 index, Int16 x);
         [Slot(2469)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib1sv(UInt32 index, [CountAttribute(Count = 1)] Int16* v);
         [Slot(2472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2d(UInt32 index, Double x, Double y);
         [Slot(2475)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib2dv(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(2478)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2f(UInt32 index, Single x, Single y);
         [Slot(2481)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fv(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(2486)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2s(UInt32 index, Int16 x, Int16 y);
         [Slot(2489)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib2sv(UInt32 index, [CountAttribute(Count = 2)] Int16* v);
         [Slot(2492)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3d(UInt32 index, Double x, Double y, Double z);
         [Slot(2495)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib3dv(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(2498)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3f(UInt32 index, Single x, Single y, Single z);
         [Slot(2501)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fv(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(2506)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3s(UInt32 index, Int16 x, Int16 y, Int16 z);
         [Slot(2509)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib3sv(UInt32 index, [CountAttribute(Count = 3)] Int16* v);
         [Slot(2512)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4bv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4bv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2514)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4d(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(2517)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib4dv(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(2520)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4f(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(2523)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(2528)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2530)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nbv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4Nbv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2532)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Niv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4Niv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2534)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nsv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4Nsv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2536)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4Nub(UInt32 index, Byte x, Byte y, Byte z, Byte w);
         [Slot(2538)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4Nubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2540)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nuiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4Nuiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2542)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nusv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4Nusv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2544)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4s(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2547)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4sv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2551)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4ubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4ubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2554)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2556)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4usv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4usv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2559)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribBinding(UInt32 attribindex, UInt32 bindingindex);
@@ -138329,124 +138329,124 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexAttribI1i(UInt32 index, Int32 x);
         [Slot(2566)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI1iv(UInt32 index, [CountAttribute(Count = 1)] Int32* v);
         [Slot(2568)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI1ui(UInt32 index, UInt32 x);
         [Slot(2570)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI1uiv(UInt32 index, [CountAttribute(Count = 1)] UInt32* v);
         [Slot(2572)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2i(UInt32 index, Int32 x, Int32 y);
         [Slot(2574)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI2iv(UInt32 index, [CountAttribute(Count = 2)] Int32* v);
         [Slot(2576)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2ui(UInt32 index, UInt32 x, UInt32 y);
         [Slot(2578)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI2uiv(UInt32 index, [CountAttribute(Count = 2)] UInt32* v);
         [Slot(2580)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3i(UInt32 index, Int32 x, Int32 y, Int32 z);
         [Slot(2582)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI3iv(UInt32 index, [CountAttribute(Count = 3)] Int32* v);
         [Slot(2584)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z);
         [Slot(2586)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI3uiv(UInt32 index, [CountAttribute(Count = 3)] UInt32* v);
         [Slot(2588)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4bv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttribI4bv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2590)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4i(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(2592)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2594)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttribI4sv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2596)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4ubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttribI4ubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2598)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(2600)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2602)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4usv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttribI4usv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2604)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribIFormat(UInt32 attribindex, Int32 size, System.Int32 type, UInt32 relativeoffset);
         [Slot(2606)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2608)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL1d(UInt32 index, Double x);
         [Slot(2610)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL1dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL1dv(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(2618)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL2d(UInt32 index, Double x, Double y);
         [Slot(2620)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL2dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL2dv(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(2626)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL3d(UInt32 index, Double x, Double y, Double z);
         [Slot(2628)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL3dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL3dv(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(2634)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL4d(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(2636)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL4dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL4dv(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(2642)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribLFormat(UInt32 attribindex, Int32 size, System.Int32 type, UInt32 relativeoffset);
         [Slot(2644)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribLPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribLPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer);
         [Slot(2646)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP1ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(2647)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP1uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP1uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2648)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP2ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(2649)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP2uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP2uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2650)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP3ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(2651)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP3uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP3uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2652)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP4ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(2653)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP4uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP4uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2655)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2675)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexBindingDivisor(UInt32 bindingindex, UInt32 divisor);
@@ -138455,34 +138455,34 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexP2ui(System.Int32 type, UInt32 value);
         [Slot(2681)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP2uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP2uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2682)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexP3ui(System.Int32 type, UInt32 value);
         [Slot(2683)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP3uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2684)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexP4ui(System.Int32 type, UInt32 value);
         [Slot(2685)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP4uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(2686)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexPointer(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexPointer(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2731)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewport(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(2732)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glViewportArrayv(UInt32 first, Int32 count, Single* v);
+        private static extern unsafe void glViewportArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v);
         [Slot(2733)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewportIndexedf(UInt32 index, Single x, Single y, Single w, Single h);
         [Slot(2734)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glViewportIndexedfv(UInt32 index, Single* v);
+        private static extern unsafe void glViewportIndexedfv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(2735)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWaitSync(IntPtr sync, System.Int32 flags, UInt64 timeout);
@@ -138491,49 +138491,49 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glWindowPos2d(Double x, Double y);
         [Slot(2749)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2dv(Double* v);
+        private static extern unsafe void glWindowPos2dv([CountAttribute(Count = 2)] Double* v);
         [Slot(2752)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2f(Single x, Single y);
         [Slot(2755)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2fv(Single* v);
+        private static extern unsafe void glWindowPos2fv([CountAttribute(Count = 2)] Single* v);
         [Slot(2758)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2i(Int32 x, Int32 y);
         [Slot(2761)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2iv(Int32* v);
+        private static extern unsafe void glWindowPos2iv([CountAttribute(Count = 2)] Int32* v);
         [Slot(2764)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2s(Int16 x, Int16 y);
         [Slot(2767)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2sv(Int16* v);
+        private static extern unsafe void glWindowPos2sv([CountAttribute(Count = 2)] Int16* v);
         [Slot(2770)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3d(Double x, Double y, Double z);
         [Slot(2773)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3dv(Double* v);
+        private static extern unsafe void glWindowPos3dv([CountAttribute(Count = 3)] Double* v);
         [Slot(2776)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3f(Single x, Single y, Single z);
         [Slot(2779)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3fv(Single* v);
+        private static extern unsafe void glWindowPos3fv([CountAttribute(Count = 3)] Single* v);
         [Slot(2782)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3i(Int32 x, Int32 y, Int32 z);
         [Slot(2785)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3iv(Int32* v);
+        private static extern unsafe void glWindowPos3iv([CountAttribute(Count = 3)] Int32* v);
         [Slot(2788)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3s(Int16 x, Int16 y, Int16 z);
         [Slot(2791)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3sv(Int16* v);
+        private static extern unsafe void glWindowPos3sv([CountAttribute(Count = 3)] Int16* v);
         [Slot(2)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glActiveProgramEXT(UInt32 program);
@@ -138548,7 +138548,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glApplyTextureEXT(System.Int32 mode);
         [Slot(17)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe byte glAreTexturesResidentEXT(Int32 n, UInt32* textures, [OutAttribute] bool* residences);
+        private static extern unsafe byte glAreTexturesResidentEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences);
         [Slot(19)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glArrayElementEXT(Int32 i);
@@ -138569,7 +138569,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBindBufferRangeEXT(System.Int32 target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(55)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBindFragDataLocationEXT(UInt32 program, UInt32 color, IntPtr name);
+        private static extern void glBindFragDataLocationEXT(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(59)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindFramebufferEXT(System.Int32 target, UInt32 framebuffer);
@@ -138611,34 +138611,34 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBinormal3bEXT(SByte bx, SByte by, SByte bz);
         [Slot(91)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBinormal3bvEXT(SByte* v);
+        private static extern unsafe void glBinormal3bvEXT([CountAttribute(Count = 3)] SByte* v);
         [Slot(92)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBinormal3dEXT(Double bx, Double by, Double bz);
         [Slot(93)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBinormal3dvEXT(Double* v);
+        private static extern unsafe void glBinormal3dvEXT([CountAttribute(Count = 3)] Double* v);
         [Slot(94)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBinormal3fEXT(Single bx, Single by, Single bz);
         [Slot(95)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBinormal3fvEXT(Single* v);
+        private static extern unsafe void glBinormal3fvEXT([CountAttribute(Count = 3)] Single* v);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBinormal3iEXT(Int32 bx, Int32 by, Int32 bz);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBinormal3ivEXT(Int32* v);
+        private static extern unsafe void glBinormal3ivEXT([CountAttribute(Count = 3)] Int32* v);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBinormal3sEXT(Int16 bx, Int16 by, Int16 bz);
         [Slot(99)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBinormal3svEXT(Int16* v);
+        private static extern unsafe void glBinormal3svEXT([CountAttribute(Count = 3)] Int16* v);
         [Slot(100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBinormalPointerEXT(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glBinormalPointerEXT(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(106)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendColorEXT(Single red, Single green, Single blue, Single alpha);
@@ -138668,10 +138668,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glClearColorIuiEXT(UInt32 red, UInt32 green, UInt32 blue, UInt32 alpha);
         [Slot(168)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearNamedBufferDataEXT(UInt32 buffer, System.Int32 internalformat, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearNamedBufferDataEXT(UInt32 buffer, System.Int32 internalformat, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(170)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearNamedBufferSubDataEXT(UInt32 buffer, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearNamedBufferSubDataEXT(UInt32 buffer, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(181)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClientAttribDefaultEXT(System.Int32 mask);
@@ -138680,67 +138680,67 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glColorMaskIndexedEXT(UInt32 index, bool r, bool g, bool b, bool a);
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, IntPtr pointer);
+        private static extern void glColorPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer);
         [Slot(252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorSubTableEXT(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glColorSubTableEXT(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,count")] IntPtr data);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorTableEXT(System.Int32 target, System.Int32 internalFormat, Int32 width, System.Int32 format, System.Int32 type, IntPtr table);
+        private static extern void glColorTableEXT(System.Int32 target, System.Int32 internalFormat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr table);
         [Slot(270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexSubImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexSubImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexSubImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexSubImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(275)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedMultiTexSubImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedMultiTexSubImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(288)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(290)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(292)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureSubImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureSubImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(294)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureSubImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureSubImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(296)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTextureSubImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr bits);
+        private static extern void glCompressedTextureSubImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr bits);
         [Slot(298)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter1DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter1DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr image);
         [Slot(300)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter2DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter2DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image);
         [Slot(302)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameterfEXT(System.Int32 target, System.Int32 pname, Single @params);
         [Slot(304)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterfvEXT(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glConvolutionParameterfvEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(306)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameteriEXT(System.Int32 target, System.Int32 pname, Int32 @params);
         [Slot(308)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glConvolutionParameterivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(313)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyColorSubTableEXT(System.Int32 target, Int32 start, Int32 x, Int32 y, Int32 width);
@@ -138800,25 +138800,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int32 glCreateShaderProgramEXT(System.Int32 type, IntPtr @string);
         [Slot(365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramvEXT(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(371)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCullParameterdvEXT(System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glCullParameterdvEXT(System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCullParameterfvEXT(System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glCullParameterfvEXT(System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(396)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffersEXT(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffersEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(407)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelinesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(413)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffersEXT(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffersEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(418)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTexturesEXT(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTexturesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(423)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteVertexShaderEXT(UInt32 id);
@@ -138851,13 +138851,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDrawArraysInstancedEXT(System.Int32 mode, Int32 start, Int32 count, Int32 primcount);
         [Slot(475)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern void glDrawElementsInstancedEXT(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 primcount);
         [Slot(482)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElementsEXT(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawRangeElementsEXT(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(492)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEdgeFlagPointerEXT(Int32 stride, Int32 count, bool* pointer);
+        private static extern unsafe void glEdgeFlagPointerEXT(Int32 stride, Int32 count, [CountAttribute(Computed = "stride,count")] bool* pointer);
         [Slot(499)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEnableClientStateiEXT(System.Int32 array, UInt32 index);
@@ -138893,22 +138893,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFogCoorddEXT(Double coord);
         [Slot(569)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogCoorddvEXT(Double* coord);
+        private static extern unsafe void glFogCoorddvEXT([CountAttribute(Count = 1)] Double* coord);
         [Slot(571)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogCoordfEXT(Single coord);
         [Slot(574)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogCoordfvEXT(Single* coord);
+        private static extern unsafe void glFogCoordfvEXT([CountAttribute(Count = 1)] Single* coord);
         [Slot(578)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glFogCoordPointerEXT(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glFogCoordPointerEXT(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(600)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFramebufferDrawBufferEXT(UInt32 framebuffer, System.Int32 mode);
         [Slot(601)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFramebufferDrawBuffersEXT(UInt32 framebuffer, Int32 n, System.Int32* bufs);
+        private static extern unsafe void glFramebufferDrawBuffersEXT(UInt32 framebuffer, Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(603)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFramebufferReadBufferEXT(UInt32 framebuffer, System.Int32 mode);
@@ -138944,247 +138944,247 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glGenerateTextureMipmapEXT(UInt32 texture, System.Int32 target);
         [Slot(639)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffersEXT(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffersEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(646)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelinesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(652)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffersEXT(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffersEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(654)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGenSymbolsEXT(System.Int32 datatype, System.Int32 storagetype, System.Int32 range, UInt32 components);
         [Slot(656)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTexturesEXT(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTexturesEXT(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(661)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGenVertexShadersEXT(UInt32 range);
         [Slot(682)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data);
         [Slot(696)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetColorTableEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr data);
+        private static extern void glGetColorTableEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr data);
         [Slot(698)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetColorTableParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(701)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetColorTableParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(709)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetCompressedMultiTexImageEXT(System.Int32 texunit, System.Int32 target, Int32 lod, [OutAttribute] IntPtr img);
+        private static extern void glGetCompressedMultiTexImageEXT(System.Int32 texunit, System.Int32 target, Int32 lod, [OutAttribute, CountAttribute(Computed = "target,lod")] IntPtr img);
         [Slot(713)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetCompressedTextureImageEXT(UInt32 texture, System.Int32 target, Int32 lod, [OutAttribute] IntPtr img);
+        private static extern void glGetCompressedTextureImageEXT(UInt32 texture, System.Int32 target, Int32 lod, [OutAttribute, CountAttribute(Computed = "target,lod")] IntPtr img);
         [Slot(716)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetConvolutionFilterEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr image);
+        private static extern void glGetConvolutionFilterEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image);
         [Slot(718)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetConvolutionParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(720)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetConvolutionParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(728)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoublei_vEXT(System.Int32 pname, UInt32 index, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetDoublei_vEXT(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(729)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoubleIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute] Double* data);
+        private static extern unsafe void glGetDoubleIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data);
         [Slot(738)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloati_vEXT(System.Int32 pname, UInt32 index, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetFloati_vEXT(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(739)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data);
         [Slot(744)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetFragDataLocationEXT(UInt32 program, IntPtr name);
+        private static extern Int32 glGetFragDataLocationEXT(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(750)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameterivEXT(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameterivEXT(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(752)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferParameterivEXT(UInt32 framebuffer, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferParameterivEXT(UInt32 framebuffer, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(758)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetHistogramEXT(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetHistogramEXT(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(760)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetHistogramParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(762)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetHistogramParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(773)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data);
         [Slot(779)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInvariantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute] bool* data);
+        private static extern unsafe void glGetInvariantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] bool* data);
         [Slot(780)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInvariantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute] Single* data);
+        private static extern unsafe void glGetInvariantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Single* data);
         [Slot(781)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInvariantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetInvariantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data);
         [Slot(788)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLocalConstantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute] bool* data);
+        private static extern unsafe void glGetLocalConstantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] bool* data);
         [Slot(789)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLocalConstantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute] Single* data);
+        private static extern unsafe void glGetLocalConstantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Single* data);
         [Slot(790)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLocalConstantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetLocalConstantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data);
         [Slot(805)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetMinmaxEXT(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetMinmaxEXT(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(807)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMinmaxParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(809)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMinmaxParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(812)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexEnvfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMultiTexEnvfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(813)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexEnvivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMultiTexEnvivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(814)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexGendvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetMultiTexGendvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(815)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexGenfvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMultiTexGenfvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(816)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexGenivEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMultiTexGenivEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(817)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetMultiTexImageEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glGetMultiTexImageEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels);
         [Slot(818)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexLevelParameterfvEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMultiTexLevelParameterfvEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(819)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexLevelParameterivEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMultiTexLevelParameterivEXT(System.Int32 texunit, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(820)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexParameterfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMultiTexParameterfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(821)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexParameterIivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMultiTexParameterIivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(822)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexParameterIuivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetMultiTexParameterIuivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(823)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultiTexParameterivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMultiTexParameterivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(826)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedBufferParameterivEXT(UInt32 buffer, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedBufferParameterivEXT(UInt32 buffer, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(829)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetNamedBufferPointervEXT(UInt32 buffer, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetNamedBufferPointervEXT(UInt32 buffer, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(831)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetNamedBufferSubDataEXT(UInt32 buffer, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data);
+        private static extern void glGetNamedBufferSubDataEXT(UInt32 buffer, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Computed = "size")] IntPtr data);
         [Slot(833)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedFramebufferAttachmentParameterivEXT(UInt32 framebuffer, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedFramebufferAttachmentParameterivEXT(UInt32 framebuffer, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(835)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedFramebufferParameterivEXT(UInt32 framebuffer, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedFramebufferParameterivEXT(UInt32 framebuffer, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(836)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedProgramivEXT(UInt32 program, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedProgramivEXT(UInt32 program, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(837)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedProgramLocalParameterdvEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetNamedProgramLocalParameterdvEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(838)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedProgramLocalParameterfvEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetNamedProgramLocalParameterfvEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(839)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedProgramLocalParameterIivEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedProgramLocalParameterIivEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(840)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedProgramLocalParameterIuivEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetNamedProgramLocalParameterIuivEXT(UInt32 program, System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params);
         [Slot(841)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetNamedProgramStringEXT(UInt32 program, System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @string);
+        private static extern void glGetNamedProgramStringEXT(UInt32 program, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "program,pname")] IntPtr @string);
         [Slot(843)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedRenderbufferParameterivEXT(UInt32 renderbuffer, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedRenderbufferParameterivEXT(UInt32 renderbuffer, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(889)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelEXT(System.Int32 type, UInt32 @object, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(927)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelTransformParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetPixelTransformParameterfvEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(928)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelTransformParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetPixelTransformParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(929)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointeri_vEXT(System.Int32 pname, UInt32 index, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointeri_vEXT(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(930)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute] IntPtr data);
+        private static extern void glGetPointerIndexedvEXT(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] IntPtr data);
         [Slot(932)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointervEXT(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointervEXT(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(954)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLogEXT(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(956)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetProgramPipelineivEXT(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
         [Slot(971)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(975)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64vEXT(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(979)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameterivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(985)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetSeparableFilterEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span);
+        private static extern void glGetSeparableFilterEXT(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span);
         [Slot(1013)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1015)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(1022)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetTextureImageEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glGetTextureImageEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels);
         [Slot(1024)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureLevelParameterfvEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTextureLevelParameterfvEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1026)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureLevelParameterivEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTextureLevelParameterivEXT(UInt32 texture, System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1028)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureParameterfvEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTextureParameterfvEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1030)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureParameterIivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTextureParameterIivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1032)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureParameterIuivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTextureParameterIuivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(1034)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTextureParameterivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTextureParameterivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1043)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVaryingEXT(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetTransformFeedbackVaryingEXT(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(1046)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformBufferSizeEXT(UInt32 program, Int32 location);
@@ -139193,19 +139193,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern IntPtr glGetUniformOffsetEXT(UInt32 program, Int32 location);
         [Slot(1060)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformuivEXT(UInt32 program, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformuivEXT(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params);
         [Slot(1063)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVariantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute] bool* data);
+        private static extern unsafe void glGetVariantBooleanvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] bool* data);
         [Slot(1064)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVariantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute] Single* data);
+        private static extern unsafe void glGetVariantFloatvEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Single* data);
         [Slot(1065)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVariantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetVariantIntegervEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] Int32* data);
         [Slot(1066)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVariantPointervEXT(UInt32 id, System.Int32 value, [OutAttribute] IntPtr data);
+        private static extern void glGetVariantPointervEXT(UInt32 id, System.Int32 value, [OutAttribute, CountAttribute(Computed = "id")] IntPtr data);
         [Slot(1070)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetVertexArrayIntegeri_vEXT(UInt32 vaobj, UInt32 index, System.Int32 pname, [OutAttribute] Int32* param);
@@ -139217,16 +139217,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glGetVertexArrayPointeri_vEXT(UInt32 vaobj, UInt32 index, System.Int32 pname, [OutAttribute] IntPtr param);
         [Slot(1074)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexArrayPointervEXT(UInt32 vaobj, System.Int32 pname, [OutAttribute] IntPtr param);
+        private static extern void glGetVertexArrayPointervEXT(UInt32 vaobj, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr param);
         [Slot(1084)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIivEXT(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribIivEXT(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(1086)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIuivEXT(UInt32 index, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVertexAttribIuivEXT(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(1091)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribLdvEXT(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribLdvEXT(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(1117)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHistogramEXT(System.Int32 target, Int32 width, System.Int32 internalformat, bool sink);
@@ -139241,7 +139241,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glIndexMaterialEXT(System.Int32 face, System.Int32 mode);
         [Slot(1135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glIndexPointerEXT(System.Int32 type, Int32 stride, Int32 count, IntPtr pointer);
+        private static extern void glIndexPointerEXT(System.Int32 type, Int32 stride, Int32 count, [CountAttribute(Computed = "type,stride,count")] IntPtr pointer);
         [Slot(1144)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInsertComponentEXT(UInt32 res, UInt32 src, UInt32 num);
@@ -139283,31 +139283,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMatrixFrustumEXT(System.Int32 mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar);
         [Slot(1292)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixLoaddEXT(System.Int32 mode, Double* m);
+        private static extern unsafe void glMatrixLoaddEXT(System.Int32 mode, [CountAttribute(Count = 16)] Double* m);
         [Slot(1293)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixLoadfEXT(System.Int32 mode, Single* m);
+        private static extern unsafe void glMatrixLoadfEXT(System.Int32 mode, [CountAttribute(Count = 16)] Single* m);
         [Slot(1294)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMatrixLoadIdentityEXT(System.Int32 mode);
         [Slot(1296)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixLoadTransposedEXT(System.Int32 mode, Double* m);
+        private static extern unsafe void glMatrixLoadTransposedEXT(System.Int32 mode, [CountAttribute(Count = 16)] Double* m);
         [Slot(1297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixLoadTransposefEXT(System.Int32 mode, Single* m);
+        private static extern unsafe void glMatrixLoadTransposefEXT(System.Int32 mode, [CountAttribute(Count = 16)] Single* m);
         [Slot(1301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixMultdEXT(System.Int32 mode, Double* m);
+        private static extern unsafe void glMatrixMultdEXT(System.Int32 mode, [CountAttribute(Count = 16)] Double* m);
         [Slot(1302)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixMultfEXT(System.Int32 mode, Single* m);
+        private static extern unsafe void glMatrixMultfEXT(System.Int32 mode, [CountAttribute(Count = 16)] Single* m);
         [Slot(1304)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixMultTransposedEXT(System.Int32 mode, Double* m);
+        private static extern unsafe void glMatrixMultTransposedEXT(System.Int32 mode, [CountAttribute(Count = 16)] Double* m);
         [Slot(1305)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMatrixMultTransposefEXT(System.Int32 mode, Single* m);
+        private static extern unsafe void glMatrixMultTransposefEXT(System.Int32 mode, [CountAttribute(Count = 16)] Single* m);
         [Slot(1306)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMatrixOrthoEXT(System.Int32 mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar);
@@ -139343,97 +139343,97 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMinmaxEXT(System.Int32 target, System.Int32 internalformat, bool sink);
         [Slot(1323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, Int32* first, Int32* count, Int32 primcount);
+        private static extern unsafe void glMultiDrawArraysEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount);
         [Slot(1332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount);
+        private static extern unsafe void glMultiDrawElementsEXT(System.Int32 mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount);
         [Slot(1341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexBufferEXT(System.Int32 texunit, System.Int32 target, System.Int32 internalformat, UInt32 buffer);
         [Slot(1438)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexCoordPointerEXT(System.Int32 texunit, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glMultiTexCoordPointerEXT(System.Int32 texunit, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(1439)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexEnvfEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Single param);
         [Slot(1440)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexEnvfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMultiTexEnvfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1441)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexEnviEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(1442)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexEnvivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMultiTexEnvivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1443)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexGendEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Double param);
         [Slot(1444)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexGendvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Double* @params);
+        private static extern unsafe void glMultiTexGendvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Double* @params);
         [Slot(1445)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexGenfEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Single param);
         [Slot(1446)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexGenfvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMultiTexGenfvEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1447)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexGeniEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Int32 param);
         [Slot(1448)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexGenivEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMultiTexGenivEXT(System.Int32 texunit, System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1449)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(1450)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(1451)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(1452)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexParameterfEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Single param);
         [Slot(1453)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexParameterfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMultiTexParameterfvEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1454)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexParameteriEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(1455)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexParameterIivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMultiTexParameterIivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1456)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexParameterIuivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glMultiTexParameterIuivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(1457)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexParameterivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMultiTexParameterivEXT(System.Int32 texunit, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1458)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexRenderbufferEXT(System.Int32 texunit, System.Int32 target, UInt32 renderbuffer);
         [Slot(1459)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexSubImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexSubImage1DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(1460)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexSubImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexSubImage2DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(1461)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiTexSubImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glMultiTexSubImage3DEXT(System.Int32 texunit, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(1471)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedBufferDataEXT(UInt32 buffer, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glNamedBufferDataEXT(UInt32 buffer, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data, System.Int32 usage);
         [Slot(1473)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedBufferPageCommitmentEXT(UInt32 buffer, IntPtr offset, Int32 size, bool commit);
         [Slot(1475)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedBufferStorageEXT(UInt32 buffer, IntPtr size, IntPtr data, System.Int32 flags);
+        private static extern void glNamedBufferStorageEXT(UInt32 buffer, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 flags);
         [Slot(1477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedBufferSubDataEXT(UInt32 buffer, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glNamedBufferSubDataEXT(UInt32 buffer, IntPtr offset, IntPtr size, [CountAttribute(Computed = "size")] IntPtr data);
         [Slot(1478)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedCopyBufferSubDataEXT(UInt32 readBuffer, UInt32 writeBuffer, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
@@ -139466,37 +139466,37 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glNamedProgramLocalParameter4dEXT(UInt32 program, System.Int32 target, UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(1495)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParameter4dvEXT(UInt32 program, System.Int32 target, UInt32 index, Double* @params);
+        private static extern unsafe void glNamedProgramLocalParameter4dvEXT(UInt32 program, System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Double* @params);
         [Slot(1496)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedProgramLocalParameter4fEXT(UInt32 program, System.Int32 target, UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(1497)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParameter4fvEXT(UInt32 program, System.Int32 target, UInt32 index, Single* @params);
+        private static extern unsafe void glNamedProgramLocalParameter4fvEXT(UInt32 program, System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Single* @params);
         [Slot(1498)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedProgramLocalParameterI4iEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(1499)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParameterI4ivEXT(UInt32 program, System.Int32 target, UInt32 index, Int32* @params);
+        private static extern unsafe void glNamedProgramLocalParameterI4ivEXT(UInt32 program, System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params);
         [Slot(1500)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedProgramLocalParameterI4uiEXT(UInt32 program, System.Int32 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(1501)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParameterI4uivEXT(UInt32 program, System.Int32 target, UInt32 index, UInt32* @params);
+        private static extern unsafe void glNamedProgramLocalParameterI4uivEXT(UInt32 program, System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params);
         [Slot(1502)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParameters4fvEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, Single* @params);
+        private static extern unsafe void glNamedProgramLocalParameters4fvEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params);
         [Slot(1503)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParametersI4ivEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, Int32* @params);
+        private static extern unsafe void glNamedProgramLocalParametersI4ivEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params);
         [Slot(1504)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNamedProgramLocalParametersI4uivEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, UInt32* @params);
+        private static extern unsafe void glNamedProgramLocalParametersI4uivEXT(UInt32 program, System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params);
         [Slot(1505)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedProgramStringEXT(UInt32 program, System.Int32 target, System.Int32 format, Int32 len, IntPtr @string);
+        private static extern void glNamedProgramStringEXT(UInt32 program, System.Int32 target, System.Int32 format, Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string);
         [Slot(1507)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedRenderbufferStorageEXT(UInt32 renderbuffer, System.Int32 internalformat, Int32 width, Int32 height);
@@ -139508,25 +139508,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glNamedRenderbufferStorageMultisampleEXT(UInt32 renderbuffer, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(1534)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNormalPointerEXT(System.Int32 type, Int32 stride, Int32 count, IntPtr pointer);
+        private static extern void glNormalPointerEXT(System.Int32 type, Int32 stride, Int32 count, [CountAttribute(Computed = "type,stride,count")] IntPtr pointer);
         [Slot(1600)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelTransformParameterfEXT(System.Int32 target, System.Int32 pname, Single param);
         [Slot(1601)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelTransformParameterfvEXT(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glPixelTransformParameterfvEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Count = 1)] Single* @params);
         [Slot(1602)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelTransformParameteriEXT(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(1603)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelTransformParameterivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPixelTransformParameterivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Count = 1)] Int32* @params);
         [Slot(1611)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameterfEXT(System.Int32 pname, Single param);
         [Slot(1615)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfvEXT(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfvEXT(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1629)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPolygonOffsetEXT(Single factor, Single bias);
@@ -139535,13 +139535,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPopGroupMarkerEXT();
         [Slot(1645)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPrioritizeTexturesEXT(Int32 n, UInt32* textures, Single* priorities);
+        private static extern unsafe void glPrioritizeTexturesEXT(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Single* priorities);
         [Slot(1659)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParameters4fvEXT(System.Int32 target, UInt32 index, Int32 count, Single* @params);
+        private static extern unsafe void glProgramEnvParameters4fvEXT(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params);
         [Slot(1670)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParameters4fvEXT(System.Int32 target, UInt32 index, Int32 count, Single* @params);
+        private static extern unsafe void glProgramLocalParameters4fvEXT(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* @params);
         [Slot(1683)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteriEXT(UInt32 program, System.Int32 pname, Int32 value);
@@ -139550,151 +139550,151 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glProgramUniform1dEXT(UInt32 program, Int32 location, Double x);
         [Slot(1692)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1dvEXT(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform1dvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1694)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1fEXT(UInt32 program, Int32 location, Single v0);
         [Slot(1696)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(1700)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1iEXT(UInt32 program, Int32 location, Int32 v0);
         [Slot(1702)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int32* value);
         [Slot(1706)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1uiEXT(UInt32 program, Int32 location, UInt32 v0);
         [Slot(1708)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt32* value);
         [Slot(1710)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2dEXT(UInt32 program, Int32 location, Double x, Double y);
         [Slot(1712)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2dvEXT(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform2dvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1714)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2fEXT(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(1716)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(1720)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(1722)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(1726)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(1728)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(1730)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3dEXT(UInt32 program, Int32 location, Double x, Double y, Double z);
         [Slot(1732)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3dvEXT(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform3dvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1734)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(1736)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(1740)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(1742)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(1746)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(1748)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(1750)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4dEXT(UInt32 program, Int32 location, Double x, Double y, Double z, Double w);
         [Slot(1752)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4dvEXT(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform4dvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1754)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4fEXT(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(1756)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fvEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(1760)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4iEXT(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(1762)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4ivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(1766)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4uiEXT(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(1768)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uivEXT(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(1774)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1776)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(1778)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1780)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(1782)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1784)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(1786)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1788)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(1790)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1792)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(1794)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1796)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(1798)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1800)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(1802)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x2dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1804)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(1806)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x3dvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(1808)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fvEXT(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(1813)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProvokingVertexEXT(System.Int32 mode);
@@ -139727,61 +139727,61 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSecondaryColor3bEXT(SByte red, SByte green, SByte blue);
         [Slot(1940)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3bvEXT(SByte* v);
+        private static extern unsafe void glSecondaryColor3bvEXT([CountAttribute(Count = 3)] SByte* v);
         [Slot(1942)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3dEXT(Double red, Double green, Double blue);
         [Slot(1944)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3dvEXT(Double* v);
+        private static extern unsafe void glSecondaryColor3dvEXT([CountAttribute(Count = 3)] Double* v);
         [Slot(1946)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3fEXT(Single red, Single green, Single blue);
         [Slot(1948)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3fvEXT(Single* v);
+        private static extern unsafe void glSecondaryColor3fvEXT([CountAttribute(Count = 3)] Single* v);
         [Slot(1952)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3iEXT(Int32 red, Int32 green, Int32 blue);
         [Slot(1954)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3ivEXT(Int32* v);
+        private static extern unsafe void glSecondaryColor3ivEXT([CountAttribute(Count = 3)] Int32* v);
         [Slot(1956)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3sEXT(Int16 red, Int16 green, Int16 blue);
         [Slot(1958)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3svEXT(Int16* v);
+        private static extern unsafe void glSecondaryColor3svEXT([CountAttribute(Count = 3)] Int16* v);
         [Slot(1960)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3ubEXT(Byte red, Byte green, Byte blue);
         [Slot(1962)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3ubvEXT(Byte* v);
+        private static extern unsafe void glSecondaryColor3ubvEXT([CountAttribute(Count = 3)] Byte* v);
         [Slot(1964)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3uiEXT(UInt32 red, UInt32 green, UInt32 blue);
         [Slot(1966)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3uivEXT(UInt32* v);
+        private static extern unsafe void glSecondaryColor3uivEXT([CountAttribute(Count = 3)] UInt32* v);
         [Slot(1968)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColor3usEXT(UInt16 red, UInt16 green, UInt16 blue);
         [Slot(1970)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3usvEXT(UInt16* v);
+        private static extern unsafe void glSecondaryColor3usvEXT([CountAttribute(Count = 3)] UInt16* v);
         [Slot(1975)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSecondaryColorPointerEXT(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glSecondaryColorPointerEXT(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(1980)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSeparableFilter2DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr row, IntPtr column);
+        private static extern void glSeparableFilter2DEXT(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column);
         [Slot(1984)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSetInvariantEXT(UInt32 id, System.Int32 type, IntPtr addr);
+        private static extern void glSetInvariantEXT(UInt32 id, System.Int32 type, [CountAttribute(Computed = "id,type")] IntPtr addr);
         [Slot(1985)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSetLocalConstantEXT(UInt32 id, System.Int32 type, IntPtr addr);
+        private static extern void glSetLocalConstantEXT(UInt32 id, System.Int32 type, [CountAttribute(Computed = "id,type")] IntPtr addr);
         [Slot(1989)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glShaderOp1EXT(System.Int32 op, UInt32 res, UInt32 arg1);
@@ -139802,58 +139802,58 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTangent3bEXT(SByte tx, SByte ty, SByte tz);
         [Slot(2025)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTangent3bvEXT(SByte* v);
+        private static extern unsafe void glTangent3bvEXT([CountAttribute(Count = 3)] SByte* v);
         [Slot(2026)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTangent3dEXT(Double tx, Double ty, Double tz);
         [Slot(2027)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTangent3dvEXT(Double* v);
+        private static extern unsafe void glTangent3dvEXT([CountAttribute(Count = 3)] Double* v);
         [Slot(2028)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTangent3fEXT(Single tx, Single ty, Single tz);
         [Slot(2029)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTangent3fvEXT(Single* v);
+        private static extern unsafe void glTangent3fvEXT([CountAttribute(Count = 3)] Single* v);
         [Slot(2030)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTangent3iEXT(Int32 tx, Int32 ty, Int32 tz);
         [Slot(2031)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTangent3ivEXT(Int32* v);
+        private static extern unsafe void glTangent3ivEXT([CountAttribute(Count = 3)] Int32* v);
         [Slot(2032)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTangent3sEXT(Int16 tx, Int16 ty, Int16 tz);
         [Slot(2033)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTangent3svEXT(Int16* v);
+        private static extern unsafe void glTangent3svEXT([CountAttribute(Count = 3)] Int16* v);
         [Slot(2034)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTangentPointerEXT(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glTangentPointerEXT(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(2043)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexBufferEXT(System.Int32 target, System.Int32 internalformat, UInt32 buffer);
         [Slot(2127)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexCoordPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, IntPtr pointer);
+        private static extern void glTexCoordPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer);
         [Slot(2150)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3DEXT(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3DEXT(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2159)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2161)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuivEXT(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(2173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage1DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage1DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(2175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(2177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3DEXT(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2182)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureBufferEXT(UInt32 texture, System.Int32 target, System.Int32 internalformat, UInt32 buffer);
@@ -139862,13 +139862,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTextureBufferRangeEXT(UInt32 texture, System.Int32 target, System.Int32 internalformat, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(2186)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(2187)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(2190)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2193)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureLightEXT(System.Int32 pname);
@@ -139886,19 +139886,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTextureParameterfEXT(UInt32 texture, System.Int32 target, System.Int32 pname, Single param);
         [Slot(2200)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTextureParameterfvEXT(UInt32 texture, System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTextureParameterfvEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(2202)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureParameteriEXT(UInt32 texture, System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(2204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTextureParameterIivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTextureParameterIivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2206)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTextureParameterIuivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTextureParameterIuivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(2208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTextureParameterivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTextureParameterivEXT(UInt32 texture, System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureRenderbufferEXT(UInt32 texture, System.Int32 target, UInt32 renderbuffer);
@@ -139919,40 +139919,40 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTextureStorage3DMultisampleEXT(UInt32 texture, System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(2223)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureSubImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureSubImage1DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(2225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureSubImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureSubImage2DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(2227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTextureSubImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTextureSubImage3DEXT(UInt32 texture, System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(2235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTransformFeedbackVaryingsEXT(UInt32 program, Int32 count, IntPtr varyings, System.Int32 bufferMode);
+        private static extern void glTransformFeedbackVaryingsEXT(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] IntPtr varyings, System.Int32 bufferMode);
         [Slot(2256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1uiEXT(Int32 location, UInt32 v0);
         [Slot(2258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1uivEXT(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform1uivEXT(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value);
         [Slot(2274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2uiEXT(Int32 location, UInt32 v0, UInt32 v1);
         [Slot(2276)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2uivEXT(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform2uivEXT(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(2292)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3uiEXT(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(2294)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3uivEXT(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform3uivEXT(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(2310)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4uiEXT(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(2312)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4uivEXT(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform4uivEXT(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(2314)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformBufferEXT(UInt32 program, Int32 location, UInt32 buffer);
@@ -139973,31 +139973,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glValidateProgramPipelineEXT(UInt32 pipeline);
         [Slot(2361)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantbvEXT(UInt32 id, SByte* addr);
+        private static extern unsafe void glVariantbvEXT(UInt32 id, [CountAttribute(Computed = "id")] SByte* addr);
         [Slot(2362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantdvEXT(UInt32 id, Double* addr);
+        private static extern unsafe void glVariantdvEXT(UInt32 id, [CountAttribute(Computed = "id")] Double* addr);
         [Slot(2363)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantfvEXT(UInt32 id, Single* addr);
+        private static extern unsafe void glVariantfvEXT(UInt32 id, [CountAttribute(Computed = "id")] Single* addr);
         [Slot(2364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantivEXT(UInt32 id, Int32* addr);
+        private static extern unsafe void glVariantivEXT(UInt32 id, [CountAttribute(Computed = "id")] Int32* addr);
         [Slot(2365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVariantPointerEXT(UInt32 id, System.Int32 type, UInt32 stride, IntPtr addr);
+        private static extern void glVariantPointerEXT(UInt32 id, System.Int32 type, UInt32 stride, [CountAttribute(Computed = "id,type,stride")] IntPtr addr);
         [Slot(2366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantsvEXT(UInt32 id, Int16* addr);
+        private static extern unsafe void glVariantsvEXT(UInt32 id, [CountAttribute(Computed = "id")] Int16* addr);
         [Slot(2367)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantubvEXT(UInt32 id, Byte* addr);
+        private static extern unsafe void glVariantubvEXT(UInt32 id, [CountAttribute(Computed = "id")] Byte* addr);
         [Slot(2368)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantuivEXT(UInt32 id, UInt32* addr);
+        private static extern unsafe void glVariantuivEXT(UInt32 id, [CountAttribute(Computed = "id")] UInt32* addr);
         [Slot(2369)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVariantusvEXT(UInt32 id, UInt16* addr);
+        private static extern unsafe void glVariantusvEXT(UInt32 id, [CountAttribute(Computed = "id")] UInt16* addr);
         [Slot(2427)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexArrayBindVertexBufferEXT(UInt32 vaobj, UInt32 bindingindex, UInt32 buffer, IntPtr offset, Int32 stride);
@@ -140060,103 +140060,103 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexAttribI1iEXT(UInt32 index, Int32 x);
         [Slot(2567)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1ivEXT(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI1ivEXT(UInt32 index, [CountAttribute(Count = 1)] Int32* v);
         [Slot(2569)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI1uiEXT(UInt32 index, UInt32 x);
         [Slot(2571)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1uivEXT(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI1uivEXT(UInt32 index, [CountAttribute(Count = 1)] UInt32* v);
         [Slot(2573)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2iEXT(UInt32 index, Int32 x, Int32 y);
         [Slot(2575)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2ivEXT(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI2ivEXT(UInt32 index, [CountAttribute(Count = 2)] Int32* v);
         [Slot(2577)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2uiEXT(UInt32 index, UInt32 x, UInt32 y);
         [Slot(2579)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2uivEXT(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI2uivEXT(UInt32 index, [CountAttribute(Count = 2)] UInt32* v);
         [Slot(2581)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3iEXT(UInt32 index, Int32 x, Int32 y, Int32 z);
         [Slot(2583)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3ivEXT(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI3ivEXT(UInt32 index, [CountAttribute(Count = 3)] Int32* v);
         [Slot(2585)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3uiEXT(UInt32 index, UInt32 x, UInt32 y, UInt32 z);
         [Slot(2587)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3uivEXT(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI3uivEXT(UInt32 index, [CountAttribute(Count = 3)] UInt32* v);
         [Slot(2589)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4bvEXT(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttribI4bvEXT(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(2591)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4iEXT(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(2593)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4ivEXT(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI4ivEXT(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(2595)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4svEXT(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttribI4svEXT(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2597)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4ubvEXT(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttribI4ubvEXT(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2599)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4uiEXT(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(2601)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4uivEXT(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI4uivEXT(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(2603)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4usvEXT(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttribI4usvEXT(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(2607)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribIPointerEXT(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribIPointerEXT(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(2609)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL1dEXT(UInt32 index, Double x);
         [Slot(2611)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL1dvEXT(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL1dvEXT(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(2619)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL2dEXT(UInt32 index, Double x, Double y);
         [Slot(2621)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL2dvEXT(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL2dvEXT(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(2627)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL3dEXT(UInt32 index, Double x, Double y, Double z);
         [Slot(2629)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL3dvEXT(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL3dvEXT(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(2635)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL4dEXT(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(2637)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL4dvEXT(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL4dvEXT(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(2645)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribLPointerEXT(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribLPointerEXT(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer);
         [Slot(2687)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, IntPtr pointer);
+        private static extern void glVertexPointerEXT(Int32 size, System.Int32 type, Int32 stride, Int32 count, [CountAttribute(Computed = "size,type,stride,count")] IntPtr pointer);
         [Slot(2722)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexWeightfEXT(Single weight);
         [Slot(2723)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexWeightfvEXT(Single* weight);
+        private static extern unsafe void glVertexWeightfvEXT([CountAttribute(Count = 1)] Single* weight);
         [Slot(2726)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexWeightPointerEXT(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexWeightPointerEXT(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(2802)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWriteMaskEXT(UInt32 res, UInt32 @in, System.Int32 outX, System.Int32 outY, System.Int32 outZ, System.Int32 outW);
@@ -140165,58 +140165,58 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFrameTerminatorGREMEDY();
         [Slot(2020)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glStringMarkerGREMEDY(Int32 len, IntPtr @string);
+        private static extern void glStringMarkerGREMEDY(Int32 len, [CountAttribute(Parameter = "len")] IntPtr @string);
         [Slot(766)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetImageTransformParameterfvHP(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetImageTransformParameterfvHP(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(767)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetImageTransformParameterivHP(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetImageTransformParameterivHP(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1119)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glImageTransformParameterfHP(System.Int32 target, System.Int32 pname, Single param);
         [Slot(1120)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glImageTransformParameterfvHP(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glImageTransformParameterfvHP(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1121)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glImageTransformParameteriHP(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(1122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glImageTransformParameterivHP(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glImageTransformParameterivHP(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorPointerListIBM(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glColorPointerListIBM(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(493)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEdgeFlagPointerListIBM(Int32 stride, bool** pointer, Int32 ptrstride);
+        private static extern unsafe void glEdgeFlagPointerListIBM(Int32 stride, [CountAttribute(Computed = "stride")] bool** pointer, Int32 ptrstride);
         [Slot(563)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFlushStaticDataIBM(System.Int32 target);
         [Slot(579)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glFogCoordPointerListIBM(System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glFogCoordPointerListIBM(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(1136)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glIndexPointerListIBM(System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glIndexPointerListIBM(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(1339)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiModeDrawArraysIBM(System.Int32* mode, Int32* first, Int32* count, Int32 primcount, Int32 modestride);
+        private static extern unsafe void glMultiModeDrawArraysIBM([CountAttribute(Computed = "primcount")] System.Int32* mode, [CountAttribute(Computed = "primcount")] Int32* first, [CountAttribute(Computed = "primcount")] Int32* count, Int32 primcount, Int32 modestride);
         [Slot(1340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiModeDrawElementsIBM(System.Int32* mode, Int32* count, System.Int32 type, IntPtr indices, Int32 primcount, Int32 modestride);
+        private static extern unsafe void glMultiModeDrawElementsIBM([CountAttribute(Computed = "primcount")] System.Int32* mode, [CountAttribute(Computed = "primcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "primcount")] IntPtr indices, Int32 primcount, Int32 modestride);
         [Slot(1535)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNormalPointerListIBM(System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glNormalPointerListIBM(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(1976)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSecondaryColorPointerListIBM(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glSecondaryColorPointerListIBM(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(2128)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexCoordPointerListIBM(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glTexCoordPointerListIBM(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(2688)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexPointerListIBM(Int32 size, System.Int32 type, Int32 stride, IntPtr pointer, Int32 ptrstride);
+        private static extern void glVertexPointerListIBM(Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer, Int32 ptrstride);
         [Slot(127)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendFuncSeparateINGR(System.Int32 sfactorRGB, System.Int32 dfactorRGB, System.Int32 sfactorAlpha, System.Int32 dfactorAlpha);
@@ -140225,7 +140225,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glBeginPerfQueryINTEL(UInt32 queryHandle);
         [Slot(250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorPointervINTEL(Int32 size, System.Int32 type, IntPtr pointer);
+        private static extern void glColorPointervINTEL(Int32 size, System.Int32 type, [CountAttribute(Count = 4)] IntPtr pointer);
         [Slot(354)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glCreatePerfQueryINTEL(UInt32 queryId, [OutAttribute] UInt32* queryHandle);
@@ -140255,22 +140255,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glGetPerfQueryInfoINTEL(UInt32 queryId, UInt32 queryNameLength, [OutAttribute] IntPtr queryName, [OutAttribute] UInt32* dataSize, [OutAttribute] UInt32* noCounters, [OutAttribute] UInt32* noInstances, [OutAttribute] UInt32* capsMask);
         [Slot(1274)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe IntPtr glMapTexture2DINTEL(UInt32 texture, Int32 level, UInt32 access, [OutAttribute] Int32* stride, [OutAttribute] System.Int32* layout);
+        private static extern unsafe IntPtr glMapTexture2DINTEL(UInt32 texture, Int32 level, UInt32 access, [OutAttribute, CountAttribute(Count = 1)] Int32* stride, [OutAttribute, CountAttribute(Count = 1)] System.Int32* layout);
         [Slot(1536)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNormalPointervINTEL(System.Int32 type, IntPtr pointer);
+        private static extern void glNormalPointervINTEL(System.Int32 type, [CountAttribute(Count = 4)] IntPtr pointer);
         [Slot(2022)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSyncTextureINTEL(UInt32 texture);
         [Slot(2129)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexCoordPointervINTEL(Int32 size, System.Int32 type, IntPtr pointer);
+        private static extern void glTexCoordPointervINTEL(Int32 size, System.Int32 type, [CountAttribute(Count = 4)] IntPtr pointer);
         [Slot(2349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUnmapTexture2DINTEL(UInt32 texture, Int32 level);
         [Slot(2689)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexPointervINTEL(Int32 size, System.Int32 type, IntPtr pointer);
+        private static extern void glVertexPointervINTEL(Int32 size, System.Int32 type, [CountAttribute(Count = 4)] IntPtr pointer);
         [Slot(103)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendBarrierKHR();
@@ -140285,7 +140285,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDebugMessageInsertKHR(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
         [Slot(725)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(755)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusKHR();
@@ -140300,10 +140300,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern unsafe void glGetnUniformuivKHR(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(890)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(895)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(933)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetPointervKHR(System.Int32 pname, [OutAttribute] IntPtr @params);
@@ -140321,7 +140321,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPushDebugGroupKHR(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
         [Slot(1859)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(1907)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glResizeBuffersMESA();
@@ -140330,79 +140330,79 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glWindowPos2dMESA(Double x, Double y);
         [Slot(2751)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2dvMESA(Double* v);
+        private static extern unsafe void glWindowPos2dvMESA([CountAttribute(Count = 2)] Double* v);
         [Slot(2754)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2fMESA(Single x, Single y);
         [Slot(2757)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2fvMESA(Single* v);
+        private static extern unsafe void glWindowPos2fvMESA([CountAttribute(Count = 2)] Single* v);
         [Slot(2760)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2iMESA(Int32 x, Int32 y);
         [Slot(2763)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2ivMESA(Int32* v);
+        private static extern unsafe void glWindowPos2ivMESA([CountAttribute(Count = 2)] Int32* v);
         [Slot(2766)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos2sMESA(Int16 x, Int16 y);
         [Slot(2769)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos2svMESA(Int16* v);
+        private static extern unsafe void glWindowPos2svMESA([CountAttribute(Count = 2)] Int16* v);
         [Slot(2772)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3dMESA(Double x, Double y, Double z);
         [Slot(2775)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3dvMESA(Double* v);
+        private static extern unsafe void glWindowPos3dvMESA([CountAttribute(Count = 3)] Double* v);
         [Slot(2778)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3fMESA(Single x, Single y, Single z);
         [Slot(2781)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3fvMESA(Single* v);
+        private static extern unsafe void glWindowPos3fvMESA([CountAttribute(Count = 3)] Single* v);
         [Slot(2784)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3iMESA(Int32 x, Int32 y, Int32 z);
         [Slot(2787)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3ivMESA(Int32* v);
+        private static extern unsafe void glWindowPos3ivMESA([CountAttribute(Count = 3)] Int32* v);
         [Slot(2790)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos3sMESA(Int16 x, Int16 y, Int16 z);
         [Slot(2793)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos3svMESA(Int16* v);
+        private static extern unsafe void glWindowPos3svMESA([CountAttribute(Count = 3)] Int16* v);
         [Slot(2794)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos4dMESA(Double x, Double y, Double z, Double w);
         [Slot(2795)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos4dvMESA(Double* v);
+        private static extern unsafe void glWindowPos4dvMESA([CountAttribute(Count = 4)] Double* v);
         [Slot(2796)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos4fMESA(Single x, Single y, Single z, Single w);
         [Slot(2797)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos4fvMESA(Single* v);
+        private static extern unsafe void glWindowPos4fvMESA([CountAttribute(Count = 4)] Single* v);
         [Slot(2798)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos4iMESA(Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(2799)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos4ivMESA(Int32* v);
+        private static extern unsafe void glWindowPos4ivMESA([CountAttribute(Count = 4)] Int32* v);
         [Slot(2800)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWindowPos4sMESA(Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2801)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWindowPos4svMESA(Int16* v);
+        private static extern unsafe void glWindowPos4svMESA([CountAttribute(Count = 4)] Int16* v);
         [Slot(8)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glActiveVaryingNV(UInt32 program, IntPtr name);
+        private static extern void glActiveVaryingNV(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(15)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe byte glAreProgramsResidentNV(Int32 n, UInt32* programs, [OutAttribute] bool* residences);
+        private static extern unsafe byte glAreProgramsResidentNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs, [OutAttribute, CountAttribute(Parameter = "n")] bool* residences);
         [Slot(26)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBeginConditionalRenderNV(UInt32 id, System.Int32 mode);
@@ -140453,13 +140453,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glColor3hNV(Half red, Half green, Half blue);
         [Slot(196)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3hvNV(Half* v);
+        private static extern unsafe void glColor3hvNV([CountAttribute(Count = 3)] Half* v);
         [Slot(217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4hNV(Half red, Half green, Half blue, Half alpha);
         [Slot(218)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4hvNV(Half* v);
+        private static extern unsafe void glColor4hvNV([CountAttribute(Count = 4)] Half* v);
         [Slot(235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColorFormatNV(Int32 size, System.Int32 type, Int32 stride);
@@ -140474,16 +140474,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glCombinerParameterfNV(System.Int32 pname, Single param);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCombinerParameterfvNV(System.Int32 pname, Single* @params);
+        private static extern unsafe void glCombinerParameterfvNV(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(264)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCombinerParameteriNV(System.Int32 pname, Int32 param);
         [Slot(265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCombinerParameterivNV(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glCombinerParameterivNV(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCombinerStageParameterfvNV(System.Int32 stage, System.Int32 pname, Single* @params);
+        private static extern unsafe void glCombinerStageParameterfvNV(System.Int32 stage, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyImageSubDataNV(UInt32 srcName, System.Int32 srcTarget, Int32 srcLevel, Int32 srcX, Int32 srcY, Int32 srcZ, UInt32 dstName, System.Int32 dstTarget, Int32 dstLevel, Int32 dstX, Int32 dstY, Int32 dstZ, Int32 width, Int32 height, Int32 depth);
@@ -140492,31 +140492,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glCopyPathNV(UInt32 resultPath, UInt32 srcPath);
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCoverFillPathInstancedNV(Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, System.Int32 coverMode, System.Int32 transformType, Single* transformValues);
+        private static extern unsafe void glCoverFillPathInstancedNV(Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, System.Int32 coverMode, System.Int32 transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCoverFillPathNV(UInt32 path, System.Int32 coverMode);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCoverStrokePathInstancedNV(Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, System.Int32 coverMode, System.Int32 transformType, Single* transformValues);
+        private static extern unsafe void glCoverStrokePathInstancedNV(Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, System.Int32 coverMode, System.Int32 transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues);
         [Slot(351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCoverStrokePathNV(UInt32 path, System.Int32 coverMode);
         [Slot(393)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFencesNV(Int32 n, UInt32* fences);
+        private static extern unsafe void glDeleteFencesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(401)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteOcclusionQueriesNV(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteOcclusionQueriesNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeletePathsNV(UInt32 path, Int32 range);
         [Slot(409)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramsNV(Int32 n, UInt32* programs);
+        private static extern unsafe void glDeleteProgramsNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs);
         [Slot(420)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTransformFeedbacksNV(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteTransformFeedbacksNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(424)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthBoundsdNV(Double zmin, Double zmax);
@@ -140549,7 +140549,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glEvalMapsNV(System.Int32 target, System.Int32 mode);
         [Slot(544)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glExecuteProgramNV(System.Int32 target, UInt32 id, Single* @params);
+        private static extern unsafe void glExecuteProgramNV(System.Int32 target, UInt32 id, [CountAttribute(Count = 4)] Single* @params);
         [Slot(549)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinalCombinerInputNV(System.Int32 variable, System.Int32 input, System.Int32 mapping, System.Int32 componentUsage);
@@ -140570,163 +140570,163 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFogCoordhNV(Half fog);
         [Slot(576)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogCoordhvNV(Half* fog);
+        private static extern unsafe void glFogCoordhvNV([CountAttribute(Count = 1)] Half* fog);
         [Slot(636)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute] UInt32* fences);
+        private static extern unsafe void glGenFencesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* fences);
         [Slot(642)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenOcclusionQueriesNV(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenOcclusionQueriesNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(643)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGenPathsNV(Int32 range);
         [Slot(648)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramsNV(Int32 n, [OutAttribute] UInt32* programs);
+        private static extern unsafe void glGenProgramsNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* programs);
         [Slot(658)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTransformFeedbacksNV(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenTransformFeedbacksNV(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(674)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveVaryingNV(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveVaryingNV(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Computed = "program,index,bufSize")] IntPtr name);
         [Slot(687)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameterui64vNV(System.Int32 target, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetBufferParameterui64vNV(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(704)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetCombinerInputParameterfvNV(System.Int32 stage, System.Int32 portion, System.Int32 variable, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetCombinerInputParameterfvNV(System.Int32 stage, System.Int32 portion, System.Int32 variable, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(705)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetCombinerInputParameterivNV(System.Int32 stage, System.Int32 portion, System.Int32 variable, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetCombinerInputParameterivNV(System.Int32 stage, System.Int32 portion, System.Int32 variable, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(706)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetCombinerOutputParameterfvNV(System.Int32 stage, System.Int32 portion, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetCombinerOutputParameterfvNV(System.Int32 stage, System.Int32 portion, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(707)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetCombinerOutputParameterivNV(System.Int32 stage, System.Int32 portion, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetCombinerOutputParameterivNV(System.Int32 stage, System.Int32 portion, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(708)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetCombinerStageParameterfvNV(System.Int32 stage, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetCombinerStageParameterfvNV(System.Int32 stage, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(732)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFenceivNV(UInt32 fence, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(733)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFinalCombinerInputParameterfvNV(System.Int32 variable, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetFinalCombinerInputParameterfvNV(System.Int32 variable, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(734)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFinalCombinerInputParameterivNV(System.Int32 variable, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFinalCombinerInputParameterivNV(System.Int32 variable, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(765)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int64 glGetImageHandleNV(UInt32 texture, Int32 level, bool layered, Int32 layer, System.Int32 format);
         [Slot(774)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerui64i_vNV(System.Int32 value, UInt32 index, [OutAttribute] UInt64* result);
+        private static extern unsafe void glGetIntegerui64i_vNV(System.Int32 value, UInt32 index, [OutAttribute, CountAttribute(Computed = "value")] UInt64* result);
         [Slot(775)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerui64vNV(System.Int32 value, [OutAttribute] UInt64* result);
+        private static extern unsafe void glGetIntegerui64vNV(System.Int32 value, [OutAttribute, CountAttribute(Computed = "value")] UInt64* result);
         [Slot(791)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapAttribParameterfvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMapAttribParameterfvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(792)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapAttribParameterivNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMapAttribParameterivNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(793)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetMapControlPointsNV(System.Int32 target, UInt32 index, System.Int32 type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute] IntPtr points);
+        private static extern void glGetMapControlPointsNV(System.Int32 target, UInt32 index, System.Int32 type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute, CountAttribute(Computed = "target")] IntPtr points);
         [Slot(797)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapParameterfvNV(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMapParameterfvNV(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Single* @params);
         [Slot(798)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapParameterivNV(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMapParameterivNV(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "target,pname")] Int32* @params);
         [Slot(811)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultisamplefvNV(System.Int32 pname, UInt32 index, [OutAttribute] Single* val);
+        private static extern unsafe void glGetMultisamplefvNV(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Count = 2)] Single* val);
         [Slot(827)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedBufferParameterui64vNV(UInt32 buffer, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetNamedBufferParameterui64vNV(UInt32 buffer, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(896)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetOcclusionQueryivNV(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetOcclusionQueryivNV(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(897)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetOcclusionQueryuivNV(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetOcclusionQueryuivNV(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(898)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathColorGenfvNV(System.Int32 color, System.Int32 pname, [OutAttribute] Single* value);
+        private static extern unsafe void glGetPathColorGenfvNV(System.Int32 color, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* value);
         [Slot(899)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathColorGenivNV(System.Int32 color, System.Int32 pname, [OutAttribute] Int32* value);
+        private static extern unsafe void glGetPathColorGenivNV(System.Int32 color, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* value);
         [Slot(900)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathCommandsNV(UInt32 path, [OutAttribute] Byte* commands);
+        private static extern unsafe void glGetPathCommandsNV(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Byte* commands);
         [Slot(901)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathCoordsNV(UInt32 path, [OutAttribute] Single* coords);
+        private static extern unsafe void glGetPathCoordsNV(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* coords);
         [Slot(902)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathDashArrayNV(UInt32 path, [OutAttribute] Single* dashArray);
+        private static extern unsafe void glGetPathDashArrayNV(UInt32 path, [OutAttribute, CountAttribute(Computed = "path")] Single* dashArray);
         [Slot(903)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Single glGetPathLengthNV(UInt32 path, Int32 startSegment, Int32 numSegments);
         [Slot(904)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathMetricRangeNV(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single* metrics);
+        private static extern unsafe void glGetPathMetricRangeNV(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics);
         [Slot(905)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathMetricsNV(UInt32 metricQueryMask, Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics);
+        private static extern unsafe void glGetPathMetricsNV(UInt32 metricQueryMask, Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute, CountAttribute(Computed = "metricQueryMask,numPaths,stride")] Single* metrics);
         [Slot(906)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathParameterfvNV(UInt32 path, System.Int32 pname, [OutAttribute] Single* value);
+        private static extern unsafe void glGetPathParameterfvNV(UInt32 path, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* value);
         [Slot(907)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathParameterivNV(UInt32 path, System.Int32 pname, [OutAttribute] Int32* value);
+        private static extern unsafe void glGetPathParameterivNV(UInt32 path, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* value);
         [Slot(908)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathSpacingNV(System.Int32 pathListMode, Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, System.Int32 transformType, [OutAttribute] Single* returnedSpacing);
+        private static extern unsafe void glGetPathSpacingNV(System.Int32 pathListMode, Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, System.Int32 transformType, [OutAttribute, CountAttribute(Computed = "pathListMode,numPaths")] Single* returnedSpacing);
         [Slot(909)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathTexGenfvNV(System.Int32 texCoordSet, System.Int32 pname, [OutAttribute] Single* value);
+        private static extern unsafe void glGetPathTexGenfvNV(System.Int32 texCoordSet, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* value);
         [Slot(910)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPathTexGenivNV(System.Int32 texCoordSet, System.Int32 pname, [OutAttribute] Int32* value);
+        private static extern unsafe void glGetPathTexGenivNV(System.Int32 texCoordSet, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* value);
         [Slot(938)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramEnvParameterIivNV(System.Int32 target, UInt32 index, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramEnvParameterIivNV(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(939)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramEnvParameterIuivNV(System.Int32 target, UInt32 index, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetProgramEnvParameterIuivNV(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params);
         [Slot(944)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramivNV(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramivNV(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(947)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramLocalParameterIivNV(System.Int32 target, UInt32 index, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramLocalParameterIivNV(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(948)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramLocalParameterIuivNV(System.Int32 target, UInt32 index, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetProgramLocalParameterIuivNV(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Count = 4)] UInt32* @params);
         [Slot(949)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramNamedParameterdvNV(UInt32 id, Int32 len, Byte* name, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetProgramNamedParameterdvNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(950)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramNamedParameterfvNV(UInt32 id, Int32 len, Byte* name, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetProgramNamedParameterfvNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(951)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramParameterdvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetProgramParameterdvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(952)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramParameterfvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetProgramParameterfvNV(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(957)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetProgramResourcefvNV(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, System.Int32* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Single* @params);
         [Slot(965)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramStringNV(UInt32 id, System.Int32 pname, [OutAttribute] Byte* program);
+        private static extern unsafe void glGetProgramStringNV(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "id,pname")] Byte* program);
         [Slot(966)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramSubroutineParameteruivNV(System.Int32 target, UInt32 index, [OutAttribute] UInt32* param);
+        private static extern unsafe void glGetProgramSubroutineParameteruivNV(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] UInt32* param);
         [Slot(1020)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int64 glGetTextureHandleNV(UInt32 texture);
@@ -140735,61 +140735,61 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int64 glGetTextureSamplerHandleNV(UInt32 texture, UInt32 sampler);
         [Slot(1038)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTrackMatrixivNV(System.Int32 target, UInt32 address, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTrackMatrixivNV(System.Int32 target, UInt32 address, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(1044)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVaryingNV(UInt32 program, UInt32 index, [OutAttribute] Int32* location);
+        private static extern unsafe void glGetTransformFeedbackVaryingNV(UInt32 program, UInt32 index, [OutAttribute, CountAttribute(Count = 1)] Int32* location);
         [Slot(1050)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformi64vNV(UInt32 program, Int32 location, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetUniformi64vNV(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int64* @params);
         [Slot(1058)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformui64vNV(UInt32 program, Int32 location, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetUniformui64vNV(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt64* @params);
         [Slot(1067)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetVaryingLocationNV(UInt32 program, IntPtr name);
+        private static extern Int32 glGetVaryingLocationNV(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(1079)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribdvNV(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribdvNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Double* @params);
         [Slot(1082)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfvNV(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfvNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Single* @params);
         [Slot(1089)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribivNV(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribivNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(1092)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribLi64vNV(UInt32 index, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetVertexAttribLi64vNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(1094)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribLui64vNV(UInt32 index, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetVertexAttribLui64vNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(1097)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointervNV(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointervNV(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(1098)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoCaptureivNV(UInt32 video_capture_slot, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVideoCaptureivNV(UInt32 video_capture_slot, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1099)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoCaptureStreamdvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVideoCaptureStreamdvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(1100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoCaptureStreamfvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVideoCaptureStreamfvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1101)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoCaptureStreamivNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVideoCaptureStreamivNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1102)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoi64vNV(UInt32 video_slot, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetVideoi64vNV(UInt32 video_slot, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(1103)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoivNV(UInt32 video_slot, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVideoivNV(UInt32 video_slot, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1104)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideoui64vNV(UInt32 video_slot, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetVideoui64vNV(UInt32 video_slot, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(1105)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVideouivNV(UInt32 video_slot, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVideouivNV(UInt32 video_slot, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(1127)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexFormatNV(System.Int32 type, Int32 stride);
@@ -140831,7 +140831,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern byte glIsTransformFeedbackNV(UInt32 id);
         [Slot(1231)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadProgramNV(System.Int32 target, UInt32 id, Int32 len, Byte* program);
+        private static extern unsafe void glLoadProgramNV(System.Int32 target, UInt32 id, Int32 len, [CountAttribute(Parameter = "len")] Byte* program);
         [Slot(1239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMakeBufferNonResidentNV(System.Int32 target);
@@ -140858,13 +140858,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMakeTextureHandleResidentNV(UInt64 handle);
         [Slot(1260)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMapControlPointsNV(System.Int32 target, UInt32 index, System.Int32 type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points);
+        private static extern void glMapControlPointsNV(System.Int32 target, UInt32 index, System.Int32 type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [CountAttribute(Computed = "target,uorder,vorder")] IntPtr points);
         [Slot(1272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapParameterfvNV(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glMapParameterfvNV(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "target,pname")] Single* @params);
         [Slot(1273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMapParameterivNV(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glMapParameterivNV(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "target,pname")] Int32* @params);
         [Slot(1290)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glMatrixLoad3x2fNV(System.Int32 matrixMode, Single* m);
@@ -140900,49 +140900,49 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMultiTexCoord1hNV(System.Int32 target, Half s);
         [Slot(1353)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1hvNV(System.Int32 target, Half* v);
+        private static extern unsafe void glMultiTexCoord1hvNV(System.Int32 target, [CountAttribute(Count = 1)] Half* v);
         [Slot(1374)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2hNV(System.Int32 target, Half s, Half t);
         [Slot(1375)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2hvNV(System.Int32 target, Half* v);
+        private static extern unsafe void glMultiTexCoord2hvNV(System.Int32 target, [CountAttribute(Count = 2)] Half* v);
         [Slot(1396)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3hNV(System.Int32 target, Half s, Half t, Half r);
         [Slot(1397)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3hvNV(System.Int32 target, Half* v);
+        private static extern unsafe void glMultiTexCoord3hvNV(System.Int32 target, [CountAttribute(Count = 3)] Half* v);
         [Slot(1418)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4hNV(System.Int32 target, Half s, Half t, Half r, Half q);
         [Slot(1419)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4hvNV(System.Int32 target, Half* v);
+        private static extern unsafe void glMultiTexCoord4hvNV(System.Int32 target, [CountAttribute(Count = 4)] Half* v);
         [Slot(1522)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3hNV(Half nx, Half ny, Half nz);
         [Slot(1523)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3hvNV(Half* v);
+        private static extern unsafe void glNormal3hvNV([CountAttribute(Count = 3)] Half* v);
         [Slot(1530)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormalFormatNV(System.Int32 type, Int32 stride);
         [Slot(1561)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathColorGenNV(System.Int32 color, System.Int32 genMode, System.Int32 colorFormat, Single* coeffs);
+        private static extern unsafe void glPathColorGenNV(System.Int32 color, System.Int32 genMode, System.Int32 colorFormat, [CountAttribute(Computed = "genMode,colorFormat")] Single* coeffs);
         [Slot(1562)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathCommandsNV(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, System.Int32 coordType, IntPtr coords);
+        private static extern unsafe void glPathCommandsNV(UInt32 path, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, System.Int32 coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords);
         [Slot(1563)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPathCoordsNV(UInt32 path, Int32 numCoords, System.Int32 coordType, IntPtr coords);
+        private static extern void glPathCoordsNV(UInt32 path, Int32 numCoords, System.Int32 coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords);
         [Slot(1564)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPathCoverDepthFuncNV(System.Int32 func);
         [Slot(1565)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathDashArrayNV(UInt32 path, Int32 dashCount, Single* dashArray);
+        private static extern unsafe void glPathDashArrayNV(UInt32 path, Int32 dashCount, [CountAttribute(Parameter = "dashCount")] Single* dashArray);
         [Slot(1566)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPathFogGenNV(System.Int32 genMode);
@@ -140954,10 +140954,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern System.Int32 glPathGlyphIndexRangeNV(System.Int32 fontTarget, IntPtr fontName, UInt32 fontStyle, UInt32 pathParameterTemplate, Single emScale, UInt32 baseAndCount);
         [Slot(1569)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPathGlyphRangeNV(UInt32 firstPathName, System.Int32 fontTarget, IntPtr fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, System.Int32 handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale);
+        private static extern void glPathGlyphRangeNV(UInt32 firstPathName, System.Int32 fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, System.Int32 handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale);
         [Slot(1570)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPathGlyphsNV(UInt32 firstPathName, System.Int32 fontTarget, IntPtr fontName, UInt32 fontStyle, Int32 numGlyphs, System.Int32 type, IntPtr charcodes, System.Int32 handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale);
+        private static extern void glPathGlyphsNV(UInt32 firstPathName, System.Int32 fontTarget, [CountAttribute(Computed = "fontTarget,fontName")] IntPtr fontName, UInt32 fontStyle, Int32 numGlyphs, System.Int32 type, [CountAttribute(Computed = "numGlyphs,type,charcodes")] IntPtr charcodes, System.Int32 handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale);
         [Slot(1571)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glPathMemoryGlyphIndexArrayNV(UInt32 firstPathName, System.Int32 fontTarget, IntPtr fontSize, IntPtr fontData, Int32 faceIndex, UInt32 firstGlyphIndex, Int32 numGlyphs, UInt32 pathParameterTemplate, Single emScale);
@@ -140966,13 +140966,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPathParameterfNV(UInt32 path, System.Int32 pname, Single value);
         [Slot(1573)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathParameterfvNV(UInt32 path, System.Int32 pname, Single* value);
+        private static extern unsafe void glPathParameterfvNV(UInt32 path, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* value);
         [Slot(1574)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPathParameteriNV(UInt32 path, System.Int32 pname, Int32 value);
         [Slot(1575)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathParameterivNV(UInt32 path, System.Int32 pname, Int32* value);
+        private static extern unsafe void glPathParameterivNV(UInt32 path, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* value);
         [Slot(1576)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPathStencilDepthOffsetNV(Single factor, Single units);
@@ -140981,31 +140981,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPathStencilFuncNV(System.Int32 func, Int32 @ref, UInt32 mask);
         [Slot(1578)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPathStringNV(UInt32 path, System.Int32 format, Int32 length, IntPtr pathString);
+        private static extern void glPathStringNV(UInt32 path, System.Int32 format, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pathString);
         [Slot(1579)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathSubCommandsNV(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, System.Int32 coordType, IntPtr coords);
+        private static extern unsafe void glPathSubCommandsNV(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, [CountAttribute(Parameter = "numCommands")] Byte* commands, Int32 numCoords, System.Int32 coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords);
         [Slot(1580)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPathSubCoordsNV(UInt32 path, Int32 coordStart, Int32 numCoords, System.Int32 coordType, IntPtr coords);
+        private static extern void glPathSubCoordsNV(UInt32 path, Int32 coordStart, Int32 numCoords, System.Int32 coordType, [CountAttribute(Computed = "numCoords,coordType")] IntPtr coords);
         [Slot(1581)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPathTexGenNV(System.Int32 texCoordSet, System.Int32 genMode, Int32 components, Single* coeffs);
+        private static extern unsafe void glPathTexGenNV(System.Int32 texCoordSet, System.Int32 genMode, Int32 components, [CountAttribute(Computed = "genMode,components")] Single* coeffs);
         [Slot(1583)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPauseTransformFeedbackNV();
         [Slot(1584)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPixelDataRangeNV(System.Int32 target, Int32 length, IntPtr pointer);
+        private static extern void glPixelDataRangeNV(System.Int32 target, Int32 length, [CountAttribute(Parameter = "length")] IntPtr pointer);
         [Slot(1608)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe byte glPointAlongPathNV(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] Single* x, [OutAttribute] Single* y, [OutAttribute] Single* tangentX, [OutAttribute] Single* tangentY);
+        private static extern unsafe byte glPointAlongPathNV(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute, CountAttribute(Count = 1)] Single* x, [OutAttribute, CountAttribute(Count = 1)] Single* y, [OutAttribute, CountAttribute(Count = 1)] Single* tangentX, [OutAttribute, CountAttribute(Count = 1)] Single* tangentY);
         [Slot(1618)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameteriNV(System.Int32 pname, Int32 param);
         [Slot(1620)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterivNV(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameterivNV(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1639)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPresentFrameDualFillNV(UInt32 video_slot, UInt64 minPresentTime, UInt32 beginPresentTimeId, UInt32 presentDurationId, System.Int32 type, System.Int32 target0, UInt32 fill0, System.Int32 target1, UInt32 fill1, System.Int32 target2, UInt32 fill2, System.Int32 target3, UInt32 fill3);
@@ -141020,145 +141020,145 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPrimitiveRestartNV();
         [Slot(1648)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramBufferParametersfvNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Single* @params);
+        private static extern unsafe void glProgramBufferParametersfvNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Single* @params);
         [Slot(1649)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramBufferParametersIivNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Int32* @params);
+        private static extern unsafe void glProgramBufferParametersIivNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] Int32* @params);
         [Slot(1650)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramBufferParametersIuivNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, UInt32* @params);
+        private static extern unsafe void glProgramBufferParametersIuivNV(System.Int32 target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, [CountAttribute(Parameter = "count")] UInt32* @params);
         [Slot(1655)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramEnvParameterI4iNV(System.Int32 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(1656)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParameterI4ivNV(System.Int32 target, UInt32 index, Int32* @params);
+        private static extern unsafe void glProgramEnvParameterI4ivNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params);
         [Slot(1657)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramEnvParameterI4uiNV(System.Int32 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(1658)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParameterI4uivNV(System.Int32 target, UInt32 index, UInt32* @params);
+        private static extern unsafe void glProgramEnvParameterI4uivNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params);
         [Slot(1660)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParametersI4ivNV(System.Int32 target, UInt32 index, Int32 count, Int32* @params);
+        private static extern unsafe void glProgramEnvParametersI4ivNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params);
         [Slot(1661)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramEnvParametersI4uivNV(System.Int32 target, UInt32 index, Int32 count, UInt32* @params);
+        private static extern unsafe void glProgramEnvParametersI4uivNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params);
         [Slot(1666)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramLocalParameterI4iNV(System.Int32 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(1667)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParameterI4ivNV(System.Int32 target, UInt32 index, Int32* @params);
+        private static extern unsafe void glProgramLocalParameterI4ivNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Int32* @params);
         [Slot(1668)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramLocalParameterI4uiNV(System.Int32 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(1669)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParameterI4uivNV(System.Int32 target, UInt32 index, UInt32* @params);
+        private static extern unsafe void glProgramLocalParameterI4uivNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] UInt32* @params);
         [Slot(1671)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParametersI4ivNV(System.Int32 target, UInt32 index, Int32 count, Int32* @params);
+        private static extern unsafe void glProgramLocalParametersI4ivNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* @params);
         [Slot(1672)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramLocalParametersI4uivNV(System.Int32 target, UInt32 index, Int32 count, UInt32* @params);
+        private static extern unsafe void glProgramLocalParametersI4uivNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* @params);
         [Slot(1673)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramNamedParameter4dNV(UInt32 id, Int32 len, Byte* name, Double x, Double y, Double z, Double w);
+        private static extern unsafe void glProgramNamedParameter4dNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Double x, Double y, Double z, Double w);
         [Slot(1674)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramNamedParameter4dvNV(UInt32 id, Int32 len, Byte* name, Double* v);
+        private static extern unsafe void glProgramNamedParameter4dvNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Double* v);
         [Slot(1675)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramNamedParameter4fNV(UInt32 id, Int32 len, Byte* name, Single x, Single y, Single z, Single w);
+        private static extern unsafe void glProgramNamedParameter4fNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, Single x, Single y, Single z, Single w);
         [Slot(1676)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramNamedParameter4fvNV(UInt32 id, Int32 len, Byte* name, Single* v);
+        private static extern unsafe void glProgramNamedParameter4fvNV(UInt32 id, Int32 len, [CountAttribute(Count = 1)] Byte* name, [CountAttribute(Count = 4)] Single* v);
         [Slot(1677)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameter4dNV(System.Int32 target, UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(1678)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramParameter4dvNV(System.Int32 target, UInt32 index, Double* v);
+        private static extern unsafe void glProgramParameter4dvNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(1679)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameter4fNV(System.Int32 target, UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(1680)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramParameter4fvNV(System.Int32 target, UInt32 index, Single* v);
+        private static extern unsafe void glProgramParameter4fvNV(System.Int32 target, UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(1684)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramParameters4dvNV(System.Int32 target, UInt32 index, Int32 count, Double* v);
+        private static extern unsafe void glProgramParameters4dvNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v);
         [Slot(1685)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramParameters4fvNV(System.Int32 target, UInt32 index, Int32 count, Single* v);
+        private static extern unsafe void glProgramParameters4fvNV(System.Int32 target, UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v);
         [Slot(1686)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glProgramPathFragmentInputGenNV(UInt32 program, Int32 location, System.Int32 genMode, Int32 components, Single* coeffs);
         [Slot(1688)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramSubroutineParametersuivNV(System.Int32 target, Int32 count, UInt32* @params);
+        private static extern unsafe void glProgramSubroutineParametersuivNV(System.Int32 target, Int32 count, [CountAttribute(Parameter = "count")] UInt32* @params);
         [Slot(1698)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1i64NV(UInt32 program, Int32 location, Int64 x);
         [Slot(1699)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1i64vNV(UInt32 program, Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glProgramUniform1i64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value);
         [Slot(1704)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1ui64NV(UInt32 program, Int32 location, UInt64 x);
         [Slot(1705)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1ui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glProgramUniform1ui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value);
         [Slot(1718)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2i64NV(UInt32 program, Int32 location, Int64 x, Int64 y);
         [Slot(1719)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2i64vNV(UInt32 program, Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glProgramUniform2i64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64* value);
         [Slot(1724)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2ui64NV(UInt32 program, Int32 location, UInt64 x, UInt64 y);
         [Slot(1725)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2ui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glProgramUniform2ui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64* value);
         [Slot(1738)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3i64NV(UInt32 program, Int32 location, Int64 x, Int64 y, Int64 z);
         [Slot(1739)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3i64vNV(UInt32 program, Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glProgramUniform3i64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64* value);
         [Slot(1744)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3ui64NV(UInt32 program, Int32 location, UInt64 x, UInt64 y, UInt64 z);
         [Slot(1745)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3ui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glProgramUniform3ui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64* value);
         [Slot(1758)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4i64NV(UInt32 program, Int32 location, Int64 x, Int64 y, Int64 z, Int64 w);
         [Slot(1759)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4i64vNV(UInt32 program, Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glProgramUniform4i64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64* value);
         [Slot(1764)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4ui64NV(UInt32 program, Int32 location, UInt64 x, UInt64 y, UInt64 z, UInt64 w);
         [Slot(1765)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4ui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glProgramUniform4ui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64* value);
         [Slot(1770)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniformHandleui64NV(UInt32 program, Int32 location, UInt64 value);
         [Slot(1772)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformHandleui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* values);
+        private static extern unsafe void glProgramUniformHandleui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values);
         [Slot(1809)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniformui64NV(UInt32 program, Int32 location, UInt64 value);
         [Slot(1810)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformui64vNV(UInt32 program, Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glProgramUniformui64vNV(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value);
         [Slot(1811)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramVertexLimitNV(System.Int32 target, Int32 limit);
@@ -141167,7 +141167,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glRenderbufferStorageMultisampleCoverageNV(System.Int32 target, Int32 coverageSamples, Int32 colorSamples, System.Int32 internalformat, Int32 width, Int32 height);
         [Slot(1902)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRequestResidentProgramsNV(Int32 n, UInt32* programs);
+        private static extern unsafe void glRequestResidentProgramsNV(Int32 n, [CountAttribute(Parameter = "n")] UInt32* programs);
         [Slot(1909)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glResumeTransformFeedbackNV();
@@ -141179,7 +141179,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSecondaryColor3hNV(Half red, Half green, Half blue);
         [Slot(1950)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColor3hvNV(Half* v);
+        private static extern unsafe void glSecondaryColor3hvNV([CountAttribute(Count = 3)] Half* v);
         [Slot(1971)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColorFormatNV(Int32 size, System.Int32 type, Int32 stride);
@@ -141188,13 +141188,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSetFenceNV(UInt32 fence, System.Int32 condition);
         [Slot(2002)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glStencilFillPathInstancedNV(Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, System.Int32 fillMode, UInt32 mask, System.Int32 transformType, Single* transformValues);
+        private static extern unsafe void glStencilFillPathInstancedNV(Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, System.Int32 fillMode, UInt32 mask, System.Int32 transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues);
         [Slot(2003)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilFillPathNV(UInt32 path, System.Int32 fillMode, UInt32 mask);
         [Slot(2013)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glStencilStrokePathInstancedNV(Int32 numPaths, System.Int32 pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, System.Int32 transformType, Single* transformValues);
+        private static extern unsafe void glStencilStrokePathInstancedNV(Int32 numPaths, System.Int32 pathNameType, [CountAttribute(Computed = "numPaths,pathNameType,paths")] IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, System.Int32 transformType, [CountAttribute(Computed = "numPaths,transformType")] Single* transformValues);
         [Slot(2014)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStencilStrokePathNV(UInt32 path, Int32 reference, UInt32 mask);
@@ -141218,25 +141218,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTexCoord1hNV(Half s);
         [Slot(2054)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1hvNV(Half* v);
+        private static extern unsafe void glTexCoord1hvNV([CountAttribute(Count = 1)] Half* v);
         [Slot(2077)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2hNV(Half s, Half t);
         [Slot(2078)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2hvNV(Half* v);
+        private static extern unsafe void glTexCoord2hvNV([CountAttribute(Count = 2)] Half* v);
         [Slot(2091)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3hNV(Half s, Half t, Half r);
         [Slot(2092)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3hvNV(Half* v);
+        private static extern unsafe void glTexCoord3hvNV([CountAttribute(Count = 3)] Half* v);
         [Slot(2109)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4hNV(Half s, Half t, Half r, Half q);
         [Slot(2110)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4hvNV(Half* v);
+        private static extern unsafe void glTexCoord4hvNV([CountAttribute(Count = 4)] Half* v);
         [Slot(2117)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordFormatNV(Int32 size, System.Int32 type, Int32 stride);
@@ -141269,82 +141269,82 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTrackMatrixNV(System.Int32 target, UInt32 address, System.Int32 matrix, System.Int32 transform);
         [Slot(2230)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTransformFeedbackAttribsNV(Int32 count, Int32* attribs, System.Int32 bufferMode);
+        private static extern unsafe void glTransformFeedbackAttribsNV(Int32 count, [CountAttribute(Computed = "count")] Int32* attribs, System.Int32 bufferMode);
         [Slot(2233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTransformFeedbackStreamAttribsNV(Int32 count, Int32* attribs, Int32 nbuffers, Int32* bufstreams, System.Int32 bufferMode);
+        private static extern unsafe void glTransformFeedbackStreamAttribsNV(Int32 count, [CountAttribute(Parameter = "count")] Int32* attribs, Int32 nbuffers, [CountAttribute(Parameter = "nbuffers")] Int32* bufstreams, System.Int32 bufferMode);
         [Slot(2236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTransformFeedbackVaryingsNV(UInt32 program, Int32 count, Int32* locations, System.Int32 bufferMode);
+        private static extern unsafe void glTransformFeedbackVaryingsNV(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] Int32* locations, System.Int32 bufferMode);
         [Slot(2237)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTransformPathNV(UInt32 resultPath, UInt32 srcPath, System.Int32 transformType, Single* transformValues);
+        private static extern unsafe void glTransformPathNV(UInt32 resultPath, UInt32 srcPath, System.Int32 transformType, [CountAttribute(Computed = "transformType")] Single* transformValues);
         [Slot(2248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i64NV(Int32 location, Int64 x);
         [Slot(2249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1i64vNV(Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glUniform1i64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int64* value);
         [Slot(2254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1ui64NV(Int32 location, UInt64 x);
         [Slot(2255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1ui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniform1ui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64* value);
         [Slot(2266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i64NV(Int32 location, Int64 x, Int64 y);
         [Slot(2267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2i64vNV(Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glUniform2i64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int64* value);
         [Slot(2272)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2ui64NV(Int32 location, UInt64 x, UInt64 y);
         [Slot(2273)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2ui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniform2ui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt64* value);
         [Slot(2284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i64NV(Int32 location, Int64 x, Int64 y, Int64 z);
         [Slot(2285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3i64vNV(Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glUniform3i64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int64* value);
         [Slot(2290)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3ui64NV(Int32 location, UInt64 x, UInt64 y, UInt64 z);
         [Slot(2291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3ui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniform3ui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt64* value);
         [Slot(2302)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i64NV(Int32 location, Int64 x, Int64 y, Int64 z, Int64 w);
         [Slot(2303)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4i64vNV(Int32 location, Int32 count, Int64* value);
+        private static extern unsafe void glUniform4i64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int64* value);
         [Slot(2308)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4ui64NV(Int32 location, UInt64 x, UInt64 y, UInt64 z, UInt64 w);
         [Slot(2309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4ui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniform4ui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt64* value);
         [Slot(2316)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformHandleui64NV(Int32 location, UInt64 value);
         [Slot(2318)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformHandleui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniformHandleui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value);
         [Slot(2341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformui64NV(Int32 location, UInt64 value);
         [Slot(2342)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformui64vNV(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniformui64vNV(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt64* value);
         [Slot(2370)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVDPAUFiniNV();
         [Slot(2371)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVDPAUGetSurfaceivNV(IntPtr surface, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glVDPAUGetSurfaceivNV(IntPtr surface, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(2372)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVDPAUInitNV(IntPtr vdpDevice, IntPtr getProcAddress);
@@ -141353,19 +141353,19 @@ namespace OpenTK.Graphics.OpenGL
         private static extern byte glVDPAUIsSurfaceNV(IntPtr surface);
         [Slot(2374)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVDPAUMapSurfacesNV(Int32 numSurfaces, IntPtr* surfaces);
+        private static extern unsafe void glVDPAUMapSurfacesNV(Int32 numSurfaces, [CountAttribute(Parameter = "numSurfaces")] IntPtr* surfaces);
         [Slot(2375)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe IntPtr glVDPAURegisterOutputSurfaceNV(IntPtr vdpSurface, System.Int32 target, Int32 numTextureNames, UInt32* textureNames);
+        private static extern unsafe IntPtr glVDPAURegisterOutputSurfaceNV(IntPtr vdpSurface, System.Int32 target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames);
         [Slot(2376)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe IntPtr glVDPAURegisterVideoSurfaceNV(IntPtr vdpSurface, System.Int32 target, Int32 numTextureNames, UInt32* textureNames);
+        private static extern unsafe IntPtr glVDPAURegisterVideoSurfaceNV(IntPtr vdpSurface, System.Int32 target, Int32 numTextureNames, [CountAttribute(Parameter = "numTextureNames")] UInt32* textureNames);
         [Slot(2377)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVDPAUSurfaceAccessNV(IntPtr surface, System.Int32 access);
         [Slot(2378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVDPAUUnmapSurfacesNV(Int32 numSurface, IntPtr* surfaces);
+        private static extern unsafe void glVDPAUUnmapSurfacesNV(Int32 numSurface, [CountAttribute(Parameter = "numSurface")] IntPtr* surfaces);
         [Slot(2379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVDPAUUnregisterSurfaceNV(IntPtr surface);
@@ -141374,124 +141374,124 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertex2hNV(Half x, Half y);
         [Slot(2387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2hvNV(Half* v);
+        private static extern unsafe void glVertex2hvNV([CountAttribute(Count = 2)] Half* v);
         [Slot(2400)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3hNV(Half x, Half y, Half z);
         [Slot(2401)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3hvNV(Half* v);
+        private static extern unsafe void glVertex3hvNV([CountAttribute(Count = 3)] Half* v);
         [Slot(2414)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4hNV(Half x, Half y, Half z, Half w);
         [Slot(2415)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4hvNV(Half* v);
+        private static extern unsafe void glVertex4hvNV([CountAttribute(Count = 4)] Half* v);
         [Slot(2437)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexArrayRangeNV(Int32 length, IntPtr pointer);
+        private static extern void glVertexArrayRangeNV(Int32 length, [CountAttribute(Computed = "length")] IntPtr pointer);
         [Slot(2454)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1dNV(UInt32 index, Double x);
         [Slot(2457)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1dvNV(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib1dvNV(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(2460)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1fNV(UInt32 index, Single x);
         [Slot(2463)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fvNV(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fvNV(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(2464)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1hNV(UInt32 index, Half x);
         [Slot(2465)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1hvNV(UInt32 index, Half* v);
+        private static extern unsafe void glVertexAttrib1hvNV(UInt32 index, [CountAttribute(Count = 1)] Half* v);
         [Slot(2468)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1sNV(UInt32 index, Int16 x);
         [Slot(2471)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1svNV(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib1svNV(UInt32 index, [CountAttribute(Count = 1)] Int16* v);
         [Slot(2474)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2dNV(UInt32 index, Double x, Double y);
         [Slot(2477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2dvNV(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib2dvNV(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(2480)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2fNV(UInt32 index, Single x, Single y);
         [Slot(2483)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fvNV(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fvNV(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(2484)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2hNV(UInt32 index, Half x, Half y);
         [Slot(2485)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2hvNV(UInt32 index, Half* v);
+        private static extern unsafe void glVertexAttrib2hvNV(UInt32 index, [CountAttribute(Count = 2)] Half* v);
         [Slot(2488)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2sNV(UInt32 index, Int16 x, Int16 y);
         [Slot(2491)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2svNV(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib2svNV(UInt32 index, [CountAttribute(Count = 2)] Int16* v);
         [Slot(2494)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3dNV(UInt32 index, Double x, Double y, Double z);
         [Slot(2497)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3dvNV(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib3dvNV(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(2500)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3fNV(UInt32 index, Single x, Single y, Single z);
         [Slot(2503)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fvNV(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fvNV(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(2504)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3hNV(UInt32 index, Half x, Half y, Half z);
         [Slot(2505)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3hvNV(UInt32 index, Half* v);
+        private static extern unsafe void glVertexAttrib3hvNV(UInt32 index, [CountAttribute(Count = 3)] Half* v);
         [Slot(2508)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3sNV(UInt32 index, Int16 x, Int16 y, Int16 z);
         [Slot(2511)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3svNV(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib3svNV(UInt32 index, [CountAttribute(Count = 3)] Int16* v);
         [Slot(2516)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4dNV(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(2519)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4dvNV(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib4dvNV(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(2522)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4fNV(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(2525)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fvNV(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fvNV(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(2526)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4hNV(UInt32 index, Half x, Half y, Half z, Half w);
         [Slot(2527)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4hvNV(UInt32 index, Half* v);
+        private static extern unsafe void glVertexAttrib4hvNV(UInt32 index, [CountAttribute(Count = 4)] Half* v);
         [Slot(2546)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4sNV(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(2549)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4svNV(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4svNV(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(2550)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4ubNV(UInt32 index, Byte x, Byte y, Byte z, Byte w);
         [Slot(2553)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4ubvNV(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4ubvNV(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(2563)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribFormatNV(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride);
@@ -141503,106 +141503,106 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexAttribL1i64NV(UInt32 index, Int64 x);
         [Slot(2613)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL1i64vNV(UInt32 index, Int64* v);
+        private static extern unsafe void glVertexAttribL1i64vNV(UInt32 index, [CountAttribute(Count = 1)] Int64* v);
         [Slot(2615)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL1ui64NV(UInt32 index, UInt64 x);
         [Slot(2617)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL1ui64vNV(UInt32 index, UInt64* v);
+        private static extern unsafe void glVertexAttribL1ui64vNV(UInt32 index, [CountAttribute(Count = 1)] UInt64* v);
         [Slot(2622)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL2i64NV(UInt32 index, Int64 x, Int64 y);
         [Slot(2623)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL2i64vNV(UInt32 index, Int64* v);
+        private static extern unsafe void glVertexAttribL2i64vNV(UInt32 index, [CountAttribute(Count = 2)] Int64* v);
         [Slot(2624)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL2ui64NV(UInt32 index, UInt64 x, UInt64 y);
         [Slot(2625)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL2ui64vNV(UInt32 index, UInt64* v);
+        private static extern unsafe void glVertexAttribL2ui64vNV(UInt32 index, [CountAttribute(Count = 2)] UInt64* v);
         [Slot(2630)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL3i64NV(UInt32 index, Int64 x, Int64 y, Int64 z);
         [Slot(2631)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL3i64vNV(UInt32 index, Int64* v);
+        private static extern unsafe void glVertexAttribL3i64vNV(UInt32 index, [CountAttribute(Count = 3)] Int64* v);
         [Slot(2632)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL3ui64NV(UInt32 index, UInt64 x, UInt64 y, UInt64 z);
         [Slot(2633)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL3ui64vNV(UInt32 index, UInt64* v);
+        private static extern unsafe void glVertexAttribL3ui64vNV(UInt32 index, [CountAttribute(Count = 3)] UInt64* v);
         [Slot(2638)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL4i64NV(UInt32 index, Int64 x, Int64 y, Int64 z, Int64 w);
         [Slot(2639)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL4i64vNV(UInt32 index, Int64* v);
+        private static extern unsafe void glVertexAttribL4i64vNV(UInt32 index, [CountAttribute(Count = 4)] Int64* v);
         [Slot(2640)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL4ui64NV(UInt32 index, UInt64 x, UInt64 y, UInt64 z, UInt64 w);
         [Slot(2641)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL4ui64vNV(UInt32 index, UInt64* v);
+        private static extern unsafe void glVertexAttribL4ui64vNV(UInt32 index, [CountAttribute(Count = 4)] UInt64* v);
         [Slot(2643)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribLFormatNV(UInt32 index, Int32 size, System.Int32 type, Int32 stride);
         [Slot(2657)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointerNV(UInt32 index, Int32 fsize, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointerNV(UInt32 index, Int32 fsize, System.Int32 type, Int32 stride, [CountAttribute(Computed = "fsize,type,stride")] IntPtr pointer);
         [Slot(2658)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs1dvNV(UInt32 index, Int32 count, Double* v);
+        private static extern unsafe void glVertexAttribs1dvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Double* v);
         [Slot(2659)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs1fvNV(UInt32 index, Int32 count, Single* v);
+        private static extern unsafe void glVertexAttribs1fvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Single* v);
         [Slot(2660)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs1hvNV(UInt32 index, Int32 n, Half* v);
+        private static extern unsafe void glVertexAttribs1hvNV(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v);
         [Slot(2661)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs1svNV(UInt32 index, Int32 count, Int16* v);
+        private static extern unsafe void glVertexAttribs1svNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count")] Int16* v);
         [Slot(2662)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs2dvNV(UInt32 index, Int32 count, Double* v);
+        private static extern unsafe void glVertexAttribs2dvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Double* v);
         [Slot(2663)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs2fvNV(UInt32 index, Int32 count, Single* v);
+        private static extern unsafe void glVertexAttribs2fvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Single* v);
         [Slot(2664)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs2hvNV(UInt32 index, Int32 n, Half* v);
+        private static extern unsafe void glVertexAttribs2hvNV(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v);
         [Slot(2665)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs2svNV(UInt32 index, Int32 count, Int16* v);
+        private static extern unsafe void glVertexAttribs2svNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*2")] Int16* v);
         [Slot(2666)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs3dvNV(UInt32 index, Int32 count, Double* v);
+        private static extern unsafe void glVertexAttribs3dvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Double* v);
         [Slot(2667)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs3fvNV(UInt32 index, Int32 count, Single* v);
+        private static extern unsafe void glVertexAttribs3fvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Single* v);
         [Slot(2668)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs3hvNV(UInt32 index, Int32 n, Half* v);
+        private static extern unsafe void glVertexAttribs3hvNV(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v);
         [Slot(2669)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs3svNV(UInt32 index, Int32 count, Int16* v);
+        private static extern unsafe void glVertexAttribs3svNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*3")] Int16* v);
         [Slot(2670)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs4dvNV(UInt32 index, Int32 count, Double* v);
+        private static extern unsafe void glVertexAttribs4dvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Double* v);
         [Slot(2671)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs4fvNV(UInt32 index, Int32 count, Single* v);
+        private static extern unsafe void glVertexAttribs4fvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Single* v);
         [Slot(2672)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs4hvNV(UInt32 index, Int32 n, Half* v);
+        private static extern unsafe void glVertexAttribs4hvNV(UInt32 index, Int32 n, [CountAttribute(Parameter = "n")] Half* v);
         [Slot(2673)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs4svNV(UInt32 index, Int32 count, Int16* v);
+        private static extern unsafe void glVertexAttribs4svNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Int16* v);
         [Slot(2674)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribs4ubvNV(UInt32 index, Int32 count, Byte* v);
+        private static extern unsafe void glVertexAttribs4ubvNV(UInt32 index, Int32 count, [CountAttribute(Parameter = "count*4")] Byte* v);
         [Slot(2679)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexFormatNV(Int32 size, System.Int32 type, Int32 stride);
@@ -141611,22 +141611,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertexWeighthNV(Half weight);
         [Slot(2725)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexWeighthvNV(Half* weight);
+        private static extern unsafe void glVertexWeighthvNV([CountAttribute(Count = 1)] Half* weight);
         [Slot(2727)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe System.Int32 glVideoCaptureNV(UInt32 video_capture_slot, [OutAttribute] UInt32* sequence_num, [OutAttribute] UInt64* capture_time);
         [Slot(2728)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVideoCaptureStreamParameterdvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, Double* @params);
+        private static extern unsafe void glVideoCaptureStreamParameterdvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [CountAttribute(Computed = "pname")] Double* @params);
         [Slot(2729)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVideoCaptureStreamParameterfvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, Single* @params);
+        private static extern unsafe void glVideoCaptureStreamParameterfvNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(2730)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVideoCaptureStreamParameterivNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glVideoCaptureStreamParameterivNV(UInt32 video_capture_slot, UInt32 stream, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2740)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glWeightPathsNV(UInt32 resultPath, Int32 numPaths, UInt32* paths, Single* weights);
+        private static extern unsafe void glWeightPathsNV(UInt32 resultPath, Int32 numPaths, [CountAttribute(Parameter = "numPaths")] UInt32* paths, [CountAttribute(Parameter = "numPaths")] Single* weights);
         [Slot(27)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBeginConditionalRenderNVX(UInt32 id);
@@ -141641,7 +141641,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glAlphaFuncxOES(System.Int32 func, Int32 @ref);
         [Slot(102)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBitmapxOES(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, Byte* bitmap);
+        private static extern unsafe void glBitmapxOES(Int32 width, Int32 height, Int32 xorig, Int32 yorig, Int32 xmove, Int32 ymove, [CountAttribute(Computed = "width,height")] Byte* bitmap);
         [Slot(107)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendColorxOES(Int32 red, Int32 green, Int32 blue, Int32 alpha);
@@ -141659,28 +141659,28 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glClearDepthxOES(Int32 depth);
         [Slot(185)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanefOES(System.Int32 plane, Single* equation);
+        private static extern unsafe void glClipPlanefOES(System.Int32 plane, [CountAttribute(Count = 4)] Single* equation);
         [Slot(186)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClipPlanexOES(System.Int32 plane, Int32* equation);
+        private static extern unsafe void glClipPlanexOES(System.Int32 plane, [CountAttribute(Count = 4)] Int32* equation);
         [Slot(207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor3xOES(Int32 red, Int32 green, Int32 blue);
         [Slot(208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3xvOES(Int32* components);
+        private static extern unsafe void glColor3xvOES([CountAttribute(Count = 3)] Int32* components);
         [Slot(233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4xOES(Int32 red, Int32 green, Int32 blue, Int32 alpha);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4xvOES(Int32* components);
+        private static extern unsafe void glColor4xvOES([CountAttribute(Count = 4)] Int32* components);
         [Slot(309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameterxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(310)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(432)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthRangefOES(Single n, Single f);
@@ -141692,22 +141692,22 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glEvalCoord1xOES(Int32 u);
         [Slot(532)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord1xvOES(Int32* coords);
+        private static extern unsafe void glEvalCoord1xvOES([CountAttribute(Count = 1)] Int32* coords);
         [Slot(537)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glEvalCoord2xOES(Int32 u, Int32 v);
         [Slot(538)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glEvalCoord2xvOES(Int32* coords);
+        private static extern unsafe void glEvalCoord2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(547)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFeedbackBufferxOES(Int32 n, System.Int32 type, Int32* buffer);
+        private static extern unsafe void glFeedbackBufferxOES(Int32 n, System.Int32 type, [CountAttribute(Parameter = "n")] Int32* buffer);
         [Slot(585)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFogxOES(System.Int32 pname, Int32 param);
         [Slot(586)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogxvOES(System.Int32 pname, Int32* param);
+        private static extern unsafe void glFogxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(625)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFrustumfOES(Single l, Single r, Single b, Single t, Single n, Single f);
@@ -141716,70 +141716,70 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFrustumxOES(Int32 l, Int32 r, Int32 b, Int32 t, Int32 n, Int32 f);
         [Slot(693)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanefOES(System.Int32 plane, [OutAttribute] Single* equation);
+        private static extern unsafe void glGetClipPlanefOES(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Single* equation);
         [Slot(694)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetClipPlanexOES(System.Int32 plane, [OutAttribute] Int32* equation);
+        private static extern unsafe void glGetClipPlanexOES(System.Int32 plane, [OutAttribute, CountAttribute(Count = 4)] Int32* equation);
         [Slot(721)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetConvolutionParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(736)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFixedvOES(System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFixedvOES(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(763)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetHistogramParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(784)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetLightxOES(System.Int32 light, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetLightxOES(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(799)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMapxvOES(System.Int32 target, System.Int32 query, [OutAttribute] Int32* v);
+        private static extern unsafe void glGetMapxvOES(System.Int32 target, System.Int32 query, [OutAttribute, CountAttribute(Computed = "query")] Int32* v);
         [Slot(802)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetMaterialxOES(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(803)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMaterialxvOES(System.Int32 face, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMaterialxvOES(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1001)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexEnvxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexEnvxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1006)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexGenxvOES(System.Int32 coord, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexGenxvOES(System.Int32 coord, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1010)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameterxvOES(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexLevelParameterxvOES(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1018)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterxvOES(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glIndexxOES(Int32 component);
         [Slot(1142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glIndexxvOES(Int32* component);
+        private static extern unsafe void glIndexxvOES([CountAttribute(Count = 1)] Int32* component);
         [Slot(1211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightModelxOES(System.Int32 pname, Int32 param);
         [Slot(1212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightModelxvOES(System.Int32 pname, Int32* param);
+        private static extern unsafe void glLightModelxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(1213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLightxOES(System.Int32 light, System.Int32 pname, Int32 param);
         [Slot(1214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLightxvOES(System.Int32 light, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glLightxvOES(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLineWidthxOES(Int32 width);
         [Slot(1229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadMatrixxOES(Int32* m);
+        private static extern unsafe void glLoadMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(1236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glLoadTransposeMatrixxOES(Int32* m);
+        private static extern unsafe void glLoadTransposeMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(1253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMap1xOES(System.Int32 target, Int32 u1, Int32 u2, Int32 stride, Int32 order, Int32 points);
@@ -141797,67 +141797,67 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glMaterialxOES(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(1284)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMaterialxvOES(System.Int32 face, System.Int32 pname, Int32* param);
+        private static extern unsafe void glMaterialxvOES(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(1342)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1bOES(System.Int32 texture, SByte s);
         [Slot(1343)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord1bvOES(System.Int32 texture, [CountAttribute(Count = 1)] SByte* coords);
         [Slot(1362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord1xOES(System.Int32 texture, Int32 s);
         [Slot(1363)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord1xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord1xvOES(System.Int32 texture, [CountAttribute(Count = 1)] Int32* coords);
         [Slot(1364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2bOES(System.Int32 texture, SByte s, SByte t);
         [Slot(1365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord2bvOES(System.Int32 texture, [CountAttribute(Count = 2)] SByte* coords);
         [Slot(1384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord2xOES(System.Int32 texture, Int32 s, Int32 t);
         [Slot(1385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord2xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord2xvOES(System.Int32 texture, [CountAttribute(Count = 2)] Int32* coords);
         [Slot(1386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3bOES(System.Int32 texture, SByte s, SByte t, SByte r);
         [Slot(1387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord3bvOES(System.Int32 texture, [CountAttribute(Count = 3)] SByte* coords);
         [Slot(1406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord3xOES(System.Int32 texture, Int32 s, Int32 t, Int32 r);
         [Slot(1407)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord3xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord3xvOES(System.Int32 texture, [CountAttribute(Count = 3)] Int32* coords);
         [Slot(1408)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4bOES(System.Int32 texture, SByte s, SByte t, SByte r, SByte q);
         [Slot(1409)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4bvOES(System.Int32 texture, SByte* coords);
+        private static extern unsafe void glMultiTexCoord4bvOES(System.Int32 texture, [CountAttribute(Count = 4)] SByte* coords);
         [Slot(1428)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoord4xOES(System.Int32 texture, Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(1429)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoord4xvOES(System.Int32 texture, Int32* coords);
+        private static extern unsafe void glMultiTexCoord4xvOES(System.Int32 texture, [CountAttribute(Count = 4)] Int32* coords);
         [Slot(1464)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultMatrixxOES(Int32* m);
+        private static extern unsafe void glMultMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(1469)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultTransposeMatrixxOES(Int32* m);
+        private static extern unsafe void glMultTransposeMatrixxOES([CountAttribute(Count = 16)] Int32* m);
         [Slot(1528)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNormal3xOES(Int32 nx, Int32 ny, Int32 nz);
         [Slot(1529)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3xvOES(Int32* coords);
+        private static extern unsafe void glNormal3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(1554)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glOrthofOES(Single l, Single r, Single b, Single t, Single n, Single f);
@@ -141878,7 +141878,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPointParameterxOES(System.Int32 pname, Int32 param);
         [Slot(1622)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterxvOES(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameterxvOES(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1624)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointSizexOES(Int32 size);
@@ -141887,34 +141887,34 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPolygonOffsetxOES(Int32 factor, Int32 units);
         [Slot(1646)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPrioritizeTexturesxOES(Int32 n, UInt32* textures, Int32* priorities);
+        private static extern unsafe void glPrioritizeTexturesxOES(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures, [CountAttribute(Parameter = "n")] Int32* priorities);
         [Slot(1823)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glQueryMatrixxOES([OutAttribute] Int32* mantissa, [OutAttribute] Int32* exponent);
+        private static extern unsafe Int32 glQueryMatrixxOES([OutAttribute, CountAttribute(Count = 16)] Int32* mantissa, [OutAttribute, CountAttribute(Count = 16)] Int32* exponent);
         [Slot(1833)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos2xOES(Int32 x, Int32 y);
         [Slot(1834)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos2xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(1843)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos3xOES(Int32 x, Int32 y, Int32 z);
         [Slot(1844)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos3xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(1853)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRasterPos4xOES(Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(1854)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRasterPos4xvOES(Int32* coords);
+        private static extern unsafe void glRasterPos4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(1869)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRectxOES(Int32 x1, Int32 y1, Int32 x2, Int32 y2);
         [Slot(1870)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glRectxvOES(Int32* v1, Int32* v2);
+        private static extern unsafe void glRectxvOES([CountAttribute(Count = 2)] Int32* v1, [CountAttribute(Count = 2)] Int32* v2);
         [Slot(1912)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glRotatexOES(Int32 angle, Int32 x, Int32 y, Int32 z);
@@ -141932,67 +141932,67 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glTexCoord1bOES(SByte s);
         [Slot(2048)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord1bvOES([CountAttribute(Count = 1)] SByte* coords);
         [Slot(2059)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord1xOES(Int32 s);
         [Slot(2060)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord1xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord1xvOES([CountAttribute(Count = 1)] Int32* coords);
         [Slot(2061)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2bOES(SByte s, SByte t);
         [Slot(2062)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord2bvOES([CountAttribute(Count = 2)] SByte* coords);
         [Slot(2083)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2xOES(Int32 s, Int32 t);
         [Slot(2084)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(2085)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3bOES(SByte s, SByte t, SByte r);
         [Slot(2086)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord3bvOES([CountAttribute(Count = 3)] SByte* coords);
         [Slot(2097)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord3xOES(Int32 s, Int32 t, Int32 r);
         [Slot(2098)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord3xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(2099)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4bOES(SByte s, SByte t, SByte r, SByte q);
         [Slot(2100)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4bvOES(SByte* coords);
+        private static extern unsafe void glTexCoord4bvOES([CountAttribute(Count = 4)] SByte* coords);
         [Slot(2115)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4xOES(Int32 s, Int32 t, Int32 r, Int32 q);
         [Slot(2116)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4xvOES(Int32* coords);
+        private static extern unsafe void glTexCoord4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(2134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexEnvxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(2135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexEnvxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexEnvxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexGenxOES(System.Int32 coord, System.Int32 pname, Int32 param);
         [Slot(2144)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexGenxvOES(System.Int32 coord, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexGenxvOES(System.Int32 coord, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2163)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameterxOES(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(2164)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterxvOES(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterxvOES(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2240)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTranslatexOES(Int32 x, Int32 y, Int32 z);
@@ -142001,103 +142001,103 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glVertex2bOES(SByte x, SByte y);
         [Slot(2381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2bvOES(SByte* coords);
+        private static extern unsafe void glVertex2bvOES([CountAttribute(Count = 2)] SByte* coords);
         [Slot(2392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex2xOES(Int32 x);
         [Slot(2393)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex2xvOES(Int32* coords);
+        private static extern unsafe void glVertex2xvOES([CountAttribute(Count = 2)] Int32* coords);
         [Slot(2394)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3bOES(SByte x, SByte y, SByte z);
         [Slot(2395)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3bvOES(SByte* coords);
+        private static extern unsafe void glVertex3bvOES([CountAttribute(Count = 3)] SByte* coords);
         [Slot(2406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex3xOES(Int32 x, Int32 y);
         [Slot(2407)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex3xvOES(Int32* coords);
+        private static extern unsafe void glVertex3xvOES([CountAttribute(Count = 3)] Int32* coords);
         [Slot(2408)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4bOES(SByte x, SByte y, SByte z, SByte w);
         [Slot(2409)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4bvOES(SByte* coords);
+        private static extern unsafe void glVertex4bvOES([CountAttribute(Count = 4)] SByte* coords);
         [Slot(2420)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertex4xOES(Int32 x, Int32 y, Int32 z);
         [Slot(2421)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertex4xvOES(Int32* coords);
+        private static extern unsafe void glVertex4xvOES([CountAttribute(Count = 4)] Int32* coords);
         [Slot(1115)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHintPGI(System.Int32 target, Int32 mode);
         [Slot(256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameterfvSGI(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glColorTableParameterfvSGI(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameterivSGI(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glColorTableParameterivSGI(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorTableSGI(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr table);
+        private static extern void glColorTableSGI(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr table);
         [Slot(315)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyColorTableSGI(System.Int32 target, System.Int32 internalformat, Int32 x, Int32 y, Int32 width);
         [Slot(699)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterfvSGI(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetColorTableParameterfvSGI(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(702)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterivSGI(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetColorTableParameterivSGI(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(703)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetColorTableSGI(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr table);
+        private static extern void glGetColorTableSGI(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table);
         [Slot(437)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDetailTexFuncSGIS(System.Int32 target, Int32 n, Single* points);
+        private static extern unsafe void glDetailTexFuncSGIS(System.Int32 target, Int32 n, [CountAttribute(Parameter = "n*2")] Single* points);
         [Slot(581)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFogFuncSGIS(Int32 n, Single* points);
+        private static extern unsafe void glFogFuncSGIS(Int32 n, [CountAttribute(Parameter = "n*2")] Single* points);
         [Slot(726)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDetailTexFuncSGIS(System.Int32 target, [OutAttribute] Single* points);
+        private static extern unsafe void glGetDetailTexFuncSGIS(System.Int32 target, [OutAttribute, CountAttribute(Computed = "target")] Single* points);
         [Slot(741)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFogFuncSGIS([OutAttribute] Single* points);
+        private static extern unsafe void glGetFogFuncSGIS([OutAttribute, CountAttribute(Computed = "")] Single* points);
         [Slot(925)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelTexGenParameterfvSGIS(System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetPixelTexGenParameterfvSGIS(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(926)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetPixelTexGenParameterivSGIS(System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetPixelTexGenParameterivSGIS(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(991)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSharpenTexFuncSGIS(System.Int32 target, [OutAttribute] Single* points);
+        private static extern unsafe void glGetSharpenTexFuncSGIS(System.Int32 target, [OutAttribute, CountAttribute(Computed = "target")] Single* points);
         [Slot(1002)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexFilterFuncSGIS(System.Int32 target, System.Int32 filter, [OutAttribute] Single* weights);
+        private static extern unsafe void glGetTexFilterFuncSGIS(System.Int32 target, System.Int32 filter, [OutAttribute, CountAttribute(Computed = "target,filter")] Single* weights);
         [Slot(1592)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelTexGenParameterfSGIS(System.Int32 pname, Single param);
         [Slot(1593)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelTexGenParameterfvSGIS(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPixelTexGenParameterfvSGIS(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1594)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPixelTexGenParameteriSGIS(System.Int32 pname, Int32 param);
         [Slot(1595)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPixelTexGenParameterivSGIS(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPixelTexGenParameterivSGIS(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1612)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameterfSGIS(System.Int32 pname, Single param);
         [Slot(1616)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfvSGIS(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfvSGIS(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1921)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSampleMaskSGIS(Single value, bool invert);
@@ -142106,16 +142106,16 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glSamplePatternSGIS(System.Int32 pattern);
         [Slot(1995)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSharpenTexFuncSGIS(System.Int32 target, Int32 n, Single* points);
+        private static extern unsafe void glSharpenTexFuncSGIS(System.Int32 target, Int32 n, [CountAttribute(Parameter = "n*2")] Single* points);
         [Slot(2136)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexFilterFuncSGIS(System.Int32 target, System.Int32 filter, Int32 n, Single* weights);
+        private static extern unsafe void glTexFilterFuncSGIS(System.Int32 target, System.Int32 filter, Int32 n, [CountAttribute(Parameter = "n")] Single* weights);
         [Slot(2153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage4DSGIS(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage4DSGIS(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth,size4d")] IntPtr pixels);
         [Slot(2178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage4DSGIS(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage4DSGIS(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth,size4d")] IntPtr pixels);
         [Slot(2185)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureColorMaskSGIS(bool red, bool green, bool blue, bool alpha);
@@ -142124,10 +142124,10 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glAsyncMarkerSGIX(UInt32 marker);
         [Slot(386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeformationMap3dSGIX(System.Int32 target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, Double* points);
+        private static extern unsafe void glDeformationMap3dSGIX(System.Int32 target, Double u1, Double u2, Int32 ustride, Int32 uorder, Double v1, Double v2, Int32 vstride, Int32 vorder, Double w1, Double w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Double* points);
         [Slot(387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeformationMap3fSGIX(System.Int32 target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, Single* points);
+        private static extern unsafe void glDeformationMap3fSGIX(System.Int32 target, Single u1, Single u2, Int32 ustride, Int32 uorder, Single v1, Single v2, Int32 vstride, Int32 vorder, Single w1, Single w2, Int32 wstride, Int32 worder, [CountAttribute(Computed = "target,ustride,uorder,vstride,vorder,wstride,worder")] Single* points);
         [Slot(388)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeformSGIX(System.Int32 mask);
@@ -142136,7 +142136,7 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glDeleteAsyncMarkersSGIX(UInt32 marker, Int32 range);
         [Slot(551)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glFinishAsyncSGIX([OutAttribute] UInt32* markerp);
+        private static extern unsafe Int32 glFinishAsyncSGIX([OutAttribute, CountAttribute(Count = 1)] UInt32* markerp);
         [Slot(562)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFlushRasterSGIX();
@@ -142148,37 +142148,37 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glFragmentLightfSGIX(System.Int32 light, System.Int32 pname, Single param);
         [Slot(589)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentLightfvSGIX(System.Int32 light, System.Int32 pname, Single* @params);
+        private static extern unsafe void glFragmentLightfvSGIX(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(590)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFragmentLightiSGIX(System.Int32 light, System.Int32 pname, Int32 param);
         [Slot(591)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentLightivSGIX(System.Int32 light, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glFragmentLightivSGIX(System.Int32 light, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(592)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFragmentLightModelfSGIX(System.Int32 pname, Single param);
         [Slot(593)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentLightModelfvSGIX(System.Int32 pname, Single* @params);
+        private static extern unsafe void glFragmentLightModelfvSGIX(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(594)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFragmentLightModeliSGIX(System.Int32 pname, Int32 param);
         [Slot(595)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentLightModelivSGIX(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glFragmentLightModelivSGIX(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(596)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFragmentMaterialfSGIX(System.Int32 face, System.Int32 pname, Single param);
         [Slot(597)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentMaterialfvSGIX(System.Int32 face, System.Int32 pname, Single* @params);
+        private static extern unsafe void glFragmentMaterialfvSGIX(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(598)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFragmentMaterialiSGIX(System.Int32 face, System.Int32 pname, Int32 param);
         [Slot(599)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glFragmentMaterialivSGIX(System.Int32 face, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glFragmentMaterialivSGIX(System.Int32 face, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(621)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFrameZoomSGIX(Int32 factor);
@@ -142187,31 +142187,31 @@ namespace OpenTK.Graphics.OpenGL
         private static extern Int32 glGenAsyncMarkersSGIX(Int32 range);
         [Slot(745)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFragmentLightfvSGIX(System.Int32 light, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetFragmentLightfvSGIX(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(746)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFragmentLightivSGIX(System.Int32 light, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFragmentLightivSGIX(System.Int32 light, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(747)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFragmentMaterialfvSGIX(System.Int32 face, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetFragmentMaterialfvSGIX(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(748)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFragmentMaterialivSGIX(System.Int32 face, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFragmentMaterialivSGIX(System.Int32 face, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(769)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetInstrumentsSGIX();
         [Slot(786)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetListParameterfvSGIX(UInt32 list, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetListParameterfvSGIX(UInt32 list, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(787)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetListParameterivSGIX(UInt32 list, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetListParameterivSGIX(UInt32 list, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1118)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glIglooInterfaceSGIX(System.Int32 pname, IntPtr @params);
+        private static extern void glIglooInterfaceSGIX(System.Int32 pname, [CountAttribute(Computed = "pname")] IntPtr @params);
         [Slot(1146)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInstrumentsBufferSGIX(Int32 size, [OutAttribute] Int32* buffer);
+        private static extern unsafe void glInstrumentsBufferSGIX(Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] Int32* buffer);
         [Slot(1157)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsAsyncMarkerSGIX(UInt32 marker);
@@ -142223,13 +142223,13 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glListParameterfSGIX(UInt32 list, System.Int32 pname, Single param);
         [Slot(1222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glListParameterfvSGIX(UInt32 list, System.Int32 pname, Single* @params);
+        private static extern unsafe void glListParameterfvSGIX(UInt32 list, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1223)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glListParameteriSGIX(UInt32 list, System.Int32 pname, Int32 param);
         [Slot(1224)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glListParameterivSGIX(UInt32 list, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glListParameterivSGIX(UInt32 list, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(1226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glLoadIdentityDeformationMapSGIX(System.Int32 mask);
@@ -142238,28 +142238,28 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glPixelTexGenSGIX(System.Int32 mode);
         [Slot(1625)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glPollAsyncSGIX([OutAttribute] UInt32* markerp);
+        private static extern unsafe Int32 glPollAsyncSGIX([OutAttribute, CountAttribute(Count = 1)] UInt32* markerp);
         [Slot(1626)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glPollInstrumentsSGIX([OutAttribute] Int32* marker_p);
+        private static extern unsafe Int32 glPollInstrumentsSGIX([OutAttribute, CountAttribute(Count = 1)] Int32* marker_p);
         [Slot(1856)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReadInstrumentsSGIX(Int32 marker);
         [Slot(1871)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReferencePlaneSGIX(Double* equation);
+        private static extern unsafe void glReferencePlaneSGIX([CountAttribute(Count = 4)] Double* equation);
         [Slot(1996)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSpriteParameterfSGIX(System.Int32 pname, Single param);
         [Slot(1997)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSpriteParameterfvSGIX(System.Int32 pname, Single* @params);
+        private static extern unsafe void glSpriteParameterfvSGIX(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(1998)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSpriteParameteriSGIX(System.Int32 pname, Int32 param);
         [Slot(1999)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSpriteParameterivSGIX(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glSpriteParameterivSGIX(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(2000)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glStartInstrumentsSGIX();
@@ -142274,25 +142274,25 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glColor3fVertex3fSUN(Single r, Single g, Single b, Single x, Single y, Single z);
         [Slot(194)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor3fVertex3fvSUN(Single* c, Single* v);
+        private static extern unsafe void glColor3fVertex3fvSUN([CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4fNormal3fVertex3fSUN(Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(215)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4fNormal3fVertex3fvSUN(Single* c, Single* n, Single* v);
+        private static extern unsafe void glColor4fNormal3fVertex3fvSUN([CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4ubVertex2fSUN(Byte r, Byte g, Byte b, Byte a, Single x, Single y);
         [Slot(226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4ubVertex2fvSUN(Byte* c, Single* v);
+        private static extern unsafe void glColor4ubVertex2fvSUN([CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 2)] Single* v);
         [Slot(227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColor4ubVertex3fSUN(Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z);
         [Slot(228)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColor4ubVertex3fvSUN(Byte* c, Single* v);
+        private static extern unsafe void glColor4ubVertex3fvSUN([CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(476)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawMeshArraysSUN(System.Int32 mode, Int32 first, Int32 count, Int32 width);
@@ -142325,40 +142325,40 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glNormal3fVertex3fSUN(Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(1521)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormal3fVertex3fvSUN(Single* n, Single* v);
+        private static extern unsafe void glNormal3fVertex3fvSUN([CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(1879)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReplacementCodePointerSUN(System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glReplacementCodePointerSUN(System.Int32 type, Int32 stride, [CountAttribute(Computed = "type,stride")] IntPtr pointer);
         [Slot(1880)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeubSUN(Byte code);
         [Slot(1881)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeubvSUN(Byte* code);
+        private static extern unsafe void glReplacementCodeubvSUN([CountAttribute(Computed = "")] Byte* code);
         [Slot(1882)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiColor3fVertex3fSUN(UInt32 rc, Single r, Single g, Single b, Single x, Single y, Single z);
         [Slot(1883)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiColor3fVertex3fvSUN(UInt32* rc, Single* c, Single* v);
+        private static extern unsafe void glReplacementCodeuiColor3fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(1884)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiColor4fNormal3fVertex3fSUN(UInt32 rc, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(1885)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiColor4fNormal3fVertex3fvSUN(UInt32* rc, Single* c, Single* n, Single* v);
+        private static extern unsafe void glReplacementCodeuiColor4fNormal3fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(1886)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiColor4ubVertex3fSUN(UInt32 rc, Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z);
         [Slot(1887)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiColor4ubVertex3fvSUN(UInt32* rc, Byte* c, Single* v);
+        private static extern unsafe void glReplacementCodeuiColor4ubVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(1888)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiNormal3fVertex3fSUN(UInt32 rc, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(1889)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiNormal3fVertex3fvSUN(UInt32* rc, Single* n, Single* v);
+        private static extern unsafe void glReplacementCodeuiNormal3fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(1890)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiSUN(UInt32 code);
@@ -142367,76 +142367,76 @@ namespace OpenTK.Graphics.OpenGL
         private static extern void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(UInt32 rc, Single s, Single t, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(1892)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(UInt32* rc, Single* tc, Single* c, Single* n, Single* v);
+        private static extern unsafe void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(1893)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(UInt32 rc, Single s, Single t, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(1894)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(UInt32* rc, Single* tc, Single* n, Single* v);
+        private static extern unsafe void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(1895)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiTexCoord2fVertex3fSUN(UInt32 rc, Single s, Single t, Single x, Single y, Single z);
         [Slot(1896)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiTexCoord2fVertex3fvSUN(UInt32* rc, Single* tc, Single* v);
+        private static extern unsafe void glReplacementCodeuiTexCoord2fVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* v);
         [Slot(1897)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeuiVertex3fSUN(UInt32 rc, Single x, Single y, Single z);
         [Slot(1898)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuiVertex3fvSUN(UInt32* rc, Single* v);
+        private static extern unsafe void glReplacementCodeuiVertex3fvSUN([CountAttribute(Count = 1)] UInt32* rc, [CountAttribute(Count = 3)] Single* v);
         [Slot(1899)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeuivSUN(UInt32* code);
+        private static extern unsafe void glReplacementCodeuivSUN([CountAttribute(Computed = "")] UInt32* code);
         [Slot(1900)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReplacementCodeusSUN(UInt16 code);
         [Slot(1901)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glReplacementCodeusvSUN(UInt16* code);
+        private static extern unsafe void glReplacementCodeusvSUN([CountAttribute(Computed = "")] UInt16* code);
         [Slot(2066)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2fColor3fVertex3fSUN(Single s, Single t, Single r, Single g, Single b, Single x, Single y, Single z);
         [Slot(2067)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fColor3fVertex3fvSUN(Single* tc, Single* c, Single* v);
+        private static extern unsafe void glTexCoord2fColor3fVertex3fvSUN([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(2068)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2fColor4fNormal3fVertex3fSUN(Single s, Single t, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(2069)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fColor4fNormal3fVertex3fvSUN(Single* tc, Single* c, Single* n, Single* v);
+        private static extern unsafe void glTexCoord2fColor4fNormal3fVertex3fvSUN([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(2070)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2fColor4ubVertex3fSUN(Single s, Single t, Byte r, Byte g, Byte b, Byte a, Single x, Single y, Single z);
         [Slot(2071)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fColor4ubVertex3fvSUN(Single* tc, Byte* c, Single* v);
+        private static extern unsafe void glTexCoord2fColor4ubVertex3fvSUN([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 4)] Byte* c, [CountAttribute(Count = 3)] Single* v);
         [Slot(2072)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2fNormal3fVertex3fSUN(Single s, Single t, Single nx, Single ny, Single nz, Single x, Single y, Single z);
         [Slot(2073)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fNormal3fVertex3fvSUN(Single* tc, Single* n, Single* v);
+        private static extern unsafe void glTexCoord2fNormal3fVertex3fvSUN([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 3)] Single* v);
         [Slot(2075)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord2fVertex3fSUN(Single s, Single t, Single x, Single y, Single z);
         [Slot(2076)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord2fVertex3fvSUN(Single* tc, Single* v);
+        private static extern unsafe void glTexCoord2fVertex3fvSUN([CountAttribute(Count = 2)] Single* tc, [CountAttribute(Count = 3)] Single* v);
         [Slot(2104)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4fColor4fNormal3fVertex4fSUN(Single s, Single t, Single p, Single q, Single r, Single g, Single b, Single a, Single nx, Single ny, Single nz, Single x, Single y, Single z, Single w);
         [Slot(2105)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4fColor4fNormal3fVertex4fvSUN(Single* tc, Single* c, Single* n, Single* v);
+        private static extern unsafe void glTexCoord4fColor4fNormal3fVertex4fvSUN([CountAttribute(Count = 4)] Single* tc, [CountAttribute(Count = 4)] Single* c, [CountAttribute(Count = 3)] Single* n, [CountAttribute(Count = 4)] Single* v);
         [Slot(2107)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoord4fVertex4fSUN(Single s, Single t, Single p, Single q, Single x, Single y, Single z, Single w);
         [Slot(2108)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoord4fVertex4fvSUN(Single* tc, Single* v);
+        private static extern unsafe void glTexCoord4fVertex4fvSUN([CountAttribute(Count = 4)] Single* tc, [CountAttribute(Count = 4)] Single* v);
         [Slot(555)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glFinishTextureSUNX();
index 588ec0b..2253cfa 100644 (file)
@@ -1796,7 +1796,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32[] length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -1805,7 +1805,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(Int32 shader, Int32 count, String[] path, ref Int32 length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -1814,7 +1814,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static unsafe void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void CompileShaderInclude(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -1823,7 +1823,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32[] length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -1832,7 +1832,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, ref Int32 length) { throw new NotImplementedException(); }
+            public static void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="shader"></param>
@@ -1841,7 +1841,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="length">[length: count]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glCompileShaderIncludeARB")]
             [CLSCompliant(false)]
-            public static unsafe void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32* length) { throw new NotImplementedException(); }
+            public static unsafe void CompileShaderInclude(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] path, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_cl_event]</summary>
             /// <param name="context"></param>
@@ -1897,11 +1897,11 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
-            public static void DebugMessageCallback(DebugProcArb callback, IntPtr userParam) { throw new NotImplementedException(); }
+            public static void DebugMessageCallback(DebugProcArb callback, [CountAttribute(Computed = "callback")] IntPtr userParam) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Specify a callback to receive debugging messages from the GL
@@ -1909,12 +1909,12 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -1924,12 +1924,12 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[,] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -1939,12 +1939,12 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,,] userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] T1[,,] userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -1954,11 +1954,11 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="callback">
             /// The address of a callback function that will be called when a debug message is generated.
             /// </param>
-            /// <param name="userParam">[length: callback]
+            /// <param name="userParam">[length: COMPSIZE(callback)]
             /// A user supplied pointer that will be passed on each invocation of callback.
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageCallbackARB")]
-            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] ref T1 userParam)
+            public static void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute, CountAttribute(Computed = "callback")] ref T1 userParam)
                 where T1 : struct
              { throw new NotImplementedException(); }
 
@@ -1985,7 +1985,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -2010,7 +2010,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -2035,7 +2035,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -2060,7 +2060,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -2085,7 +2085,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+            public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Control the reporting of debug messages in a debug context
@@ -2110,7 +2110,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageControlARB")]
             [CLSCompliant(false)]
-            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+            public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, OpenTK.Graphics.OpenGL4.All severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -2135,7 +2135,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageInsertARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, Int32 id, OpenTK.Graphics.OpenGL4.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, Int32 id, OpenTK.Graphics.OpenGL4.All severity, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Inject an application-supplied message into the debug message queue
@@ -2160,13 +2160,13 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glDebugMessageInsertARB")]
             [CLSCompliant(false)]
-            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, UInt32 id, OpenTK.Graphics.OpenGL4.All severity, Int32 length, String buf) { throw new NotImplementedException(); }
+            public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.All source, OpenTK.Graphics.OpenGL4.All type, UInt32 id, OpenTK.Graphics.OpenGL4.All severity, Int32 length, [CountAttribute(Parameter = "length")] String buf) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glDeleteNamedStringARB")]
-            public static void DeleteNamedString(Int32 namelen, String name) { throw new NotImplementedException(); }
+            public static void DeleteNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_compute_variable_group_size]</summary>
             /// <param name="num_groups_x"></param>
@@ -2219,7 +2219,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -2250,7 +2250,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -2281,7 +2281,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -2312,7 +2312,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -2343,7 +2343,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_debug_output]
             /// Retrieve messages from the debug message log
@@ -2374,7 +2374,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "ARB_debug_output", Version = "", EntryPoint = "glGetDebugMessageLogARB")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusARB")]
@@ -2408,7 +2408,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@string">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] out Int32 stringlen, [OutAttribute] StringBuilder @string) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
@@ -2418,34 +2418,34 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@string">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] Int32* stringlen, [OutAttribute] StringBuilder @string) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_shading_language_include]</summary>
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             /// <param name="pname"></param>
-            /// <param name="@params">[length: pname]</param>
+            /// <param name="@params">[length: COMPSIZE(pname)]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glGetNamedStringivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2454,7 +2454,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
-            public static void GetnColorTable(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+            public static void GetnColorTable(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr table) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2464,7 +2464,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2476,7 +2476,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2488,7 +2488,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
             [CLSCompliant(false)]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2499,7 +2499,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="table">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnColorTableARB")]
-            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 table)
+            public static void GetnColorTable<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 table)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2509,7 +2509,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
-            public static void GetnCompressedTexImage(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetnCompressedTexImage(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2518,7 +2518,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2529,7 +2529,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2540,7 +2540,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,,] img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T3[,,] img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2550,7 +2550,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnCompressedTexImageARB")]
-            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] ref T3 img)
+            public static void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL4.All target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T3 img)
                 where T3 : struct
              { throw new NotImplementedException(); }
 
@@ -2561,7 +2561,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
-            public static void GetnConvolutionFilter(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+            public static void GetnConvolutionFilter(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr image) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2571,7 +2571,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2583,7 +2583,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2595,7 +2595,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2606,7 +2606,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="image">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnConvolutionFilterARB")]
-            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 image)
+            public static void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 image)
                 where T4 : struct
              { throw new NotImplementedException(); }
 
@@ -2618,7 +2618,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
-            public static void GetnHistogram(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetnHistogram(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2629,7 +2629,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2642,7 +2642,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2655,7 +2655,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
             [CLSCompliant(false)]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2667,7 +2667,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnHistogramARB")]
-            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
+            public static void GetnHistogram<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2678,7 +2678,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Double[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2687,7 +2687,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] out Double v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2696,7 +2696,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Double* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2705,7 +2705,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Single[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2714,7 +2714,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] out Single v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2723,7 +2723,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Single* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2732,7 +2732,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Int32[] v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2741,7 +2741,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] out Int32 v) { throw new NotImplementedException(); }
+            public static void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2750,7 +2750,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="v">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMapivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute] Int32* v) { throw new NotImplementedException(); }
+            public static unsafe void GetnMap(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* v) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2760,7 +2760,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
-            public static void GetnMinmax(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+            public static void GetnMinmax(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2771,7 +2771,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2784,7 +2784,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2797,7 +2797,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
             [CLSCompliant(false)]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2809,7 +2809,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnMinmaxARB")]
-            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
+            public static void GetnMinmax<T5>(OpenTK.Graphics.OpenGL4.All target, bool reset, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 values)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -2819,7 +2819,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Single[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2827,7 +2827,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] out Single values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2835,7 +2835,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Single* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2843,7 +2843,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2851,7 +2851,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2859,7 +2859,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2867,7 +2867,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] UInt32[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2875,7 +2875,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] out UInt32 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt32 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2883,7 +2883,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] UInt32* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2891,7 +2891,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Int16[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int16[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2899,7 +2899,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] out Int16 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int16 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2907,7 +2907,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] Int16* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int16* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2915,7 +2915,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] UInt16[] values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2923,7 +2923,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] out UInt16 values) { throw new NotImplementedException(); }
+            public static void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt16 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="map"></param>
@@ -2931,7 +2931,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPixelMapusvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute] UInt16* values) { throw new NotImplementedException(); }
+            public static unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL4.All map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
@@ -2943,21 +2943,21 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte[] pattern) { throw new NotImplementedException(); }
+            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte[] pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="bufSize"></param>
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute] out Byte pattern) { throw new NotImplementedException(); }
+            public static void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Byte pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="bufSize"></param>
             /// <param name="pattern">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnPolygonStippleARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte* pattern) { throw new NotImplementedException(); }
+            public static unsafe void GetnPolygonStipple(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte* pattern) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2969,7 +2969,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="column">[length: columnBufSize]</param>
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
-            public static void GetnSeparableFilter(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [OutAttribute] IntPtr row, Int32 columnBufSize, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span) { throw new NotImplementedException(); }
+            public static void GetnSeparableFilter(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [OutAttribute, CountAttribute(Parameter = "rowBufSize")] IntPtr row, Int32 columnBufSize, [OutAttribute, CountAttribute(Parameter = "columnBufSize")] IntPtr column, [OutAttribute, CountAttribute(Count = 0)] IntPtr span) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -2982,7 +2982,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[] column, [InAttribute, OutAttribute] T7[] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -2999,7 +2999,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,] column, [InAttribute, OutAttribute] T7[,] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[,] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[,] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[,] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -3016,7 +3016,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
             [CLSCompliant(false)]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,,] column, [InAttribute, OutAttribute] T7[,,] span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] T4[,,] row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] T6[,,] column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] T7[,,] span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -3032,7 +3032,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="column">[length: columnBufSize]</param>
             /// <param name="span">[length: 0]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnSeparableFilterARB")]
-            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute] ref T4 row, Int32 columnBufSize, [InAttribute, OutAttribute] ref T6 column, [InAttribute, OutAttribute] ref T7 span)
+            public static void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL4.All target, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 rowBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "rowBufSize")] ref T4 row, Int32 columnBufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "columnBufSize")] ref T6 column, [InAttribute, OutAttribute, CountAttribute(Count = 0)] ref T7 span)
                 where T4 : struct
                 where T6 : struct
                 where T7 : struct
@@ -3046,7 +3046,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
-            public static void GetnTexImage(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+            public static void GetnTexImage(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="target"></param>
@@ -3057,7 +3057,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -3070,7 +3070,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -3083,7 +3083,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
             [CLSCompliant(false)]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T5[,,] img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -3095,7 +3095,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="img">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnTexImageARB")]
-            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 img)
+            public static void GetnTexImage<T5>(OpenTK.Graphics.OpenGL4.All target, Int32 level, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T5 img)
                 where T5 : struct
              { throw new NotImplementedException(); }
 
@@ -3106,7 +3106,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3115,7 +3115,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3124,7 +3124,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3133,7 +3133,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3142,7 +3142,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Double @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3151,7 +3151,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformdvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3160,7 +3160,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3169,7 +3169,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3178,7 +3178,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3187,7 +3187,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3196,7 +3196,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Single @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3205,7 +3205,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformfvARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3214,7 +3214,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3223,7 +3223,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3232,7 +3232,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3241,7 +3241,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3250,7 +3250,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3259,7 +3259,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3268,7 +3268,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32[] @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3277,7 +3277,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+            public static void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out UInt32 @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="program"></param>
@@ -3286,7 +3286,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="@params">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glGetnUniformuivARB")]
             [CLSCompliant(false)]
-            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+            public static unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* @params) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="texture"></param>
@@ -3378,7 +3378,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="namelen"></param>
             /// <param name="name">[length: namelen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glIsNamedStringARB")]
-            public static bool IsNamedString(Int32 namelen, String name) { throw new NotImplementedException(); }
+            public static bool IsNamedString(Int32 namelen, [CountAttribute(Parameter = "namelen")] String name) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="handle"></param>
@@ -3495,7 +3495,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="stringlen"></param>
             /// <param name="@string">[length: stringlen]</param>
             [AutoGenerated(Category = "ARB_shading_language_include", Version = "", EntryPoint = "glNamedStringARB")]
-            public static void NamedString(OpenTK.Graphics.OpenGL4.All type, Int32 namelen, String name, Int32 stringlen, String @string) { throw new NotImplementedException(); }
+            public static void NamedString(OpenTK.Graphics.OpenGL4.All type, Int32 namelen, [CountAttribute(Parameter = "namelen")] String name, Int32 stringlen, [CountAttribute(Parameter = "stringlen")] String @string) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3520,7 +3520,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3529,7 +3529,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, ref Int64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3538,7 +3538,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3547,7 +3547,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64[] values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3556,7 +3556,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, ref UInt64 values) { throw new NotImplementedException(); }
+            public static void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="program"></param>
@@ -3565,7 +3565,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="values">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glProgramUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64* values) { throw new NotImplementedException(); }
+            public static unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -3578,7 +3578,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -3592,7 +3592,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3608,7 +3608,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3624,7 +3624,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3639,7 +3639,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [Obsolete("Use strongly-typed overload instead")]
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.All format, OpenTK.Graphics.OpenGL4.All type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3653,7 +3653,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_robustness]</summary>
             /// <param name="x"></param>
@@ -3666,7 +3666,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3681,7 +3681,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3696,7 +3696,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3710,7 +3710,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "ARB_robustness", Version = "", EntryPoint = "glReadnPixelsARB")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -3747,7 +3747,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, Int64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -3755,7 +3755,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref Int64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref Int64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -3763,7 +3763,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, Int64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] Int64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -3771,7 +3771,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, UInt64[] value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64[] value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -3779,7 +3779,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static void UniformHandle(Int32 location, Int32 count, ref UInt64 value) { throw new NotImplementedException(); }
+            public static void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] ref UInt64 value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="location"></param>
@@ -3787,7 +3787,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="value">[length: count]</param>
             [AutoGenerated(Category = "ARB_bindless_texture", Version = "", EntryPoint = "glUniformHandleui64vARB")]
             [CLSCompliant(false)]
-            public static unsafe void UniformHandle(Int32 location, Int32 count, UInt64* value) { throw new NotImplementedException(); }
+            public static unsafe void UniformHandle(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value) { throw new NotImplementedException(); }
 
             /// <summary>[requires: ARB_bindless_texture]</summary>
             /// <param name="index"></param>
@@ -4182,7 +4182,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -4201,7 +4201,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -4220,7 +4220,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -4239,7 +4239,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -4258,7 +4258,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more buffer objects to a sequence of indexed buffer targets
@@ -4277,7 +4277,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersBase")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersBase(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4298,7 +4298,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, Int32[] buffers, IntPtr[] offsets, IntPtr[] sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] IntPtr[] sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4319,7 +4319,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, ref Int32 buffers, ref IntPtr offsets, ref IntPtr sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref IntPtr sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4340,7 +4340,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, Int32* buffers, IntPtr* offsets, IntPtr* sizes) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4361,7 +4361,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, UInt32[] buffers, IntPtr[] offsets, IntPtr[] sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] IntPtr[] sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4382,7 +4382,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, ref UInt32 buffers, ref IntPtr offsets, ref IntPtr sizes) { throw new NotImplementedException(); }
+        public static void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref IntPtr sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind ranges of one or more buffer objects to a sequence of indexed buffer targets
@@ -4403,7 +4403,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="sizes">[length: count]</param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindBuffersRange")]
         [CLSCompliant(false)]
-        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, IntPtr* sizes) { throw new NotImplementedException(); }
+        public static unsafe void BindBuffersRange(OpenTK.Graphics.OpenGL4.BufferRangeTarget target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Bind a user-defined varying out variable to a fragment shader color number
@@ -4414,12 +4414,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="color">
         /// The color number to bind the user-defined varying out variable to
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to modify
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
         [CLSCompliant(false)]
-        public static void BindFragDataLocation(Int32 program, Int32 color, String name) { throw new NotImplementedException(); }
+        public static void BindFragDataLocation(Int32 program, Int32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Bind a user-defined varying out variable to a fragment shader color number
@@ -4430,12 +4430,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="color">
         /// The color number to bind the user-defined varying out variable to
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to modify
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindFragDataLocation")]
         [CLSCompliant(false)]
-        public static void BindFragDataLocation(UInt32 program, UInt32 color, String name) { throw new NotImplementedException(); }
+        public static void BindFragDataLocation(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_blend_func_extended|VERSION_3_3]
         /// Bind a user-defined varying out variable to a fragment shader color number and index
@@ -4571,7 +4571,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(Int32 first, Int32 count, Int32[] textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -4587,7 +4587,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(Int32 first, Int32 count, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -4603,7 +4603,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindImageTextures(Int32 first, Int32 count, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindImageTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -4619,7 +4619,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(UInt32 first, Int32 count, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -4635,7 +4635,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static void BindImageTextures(UInt32 first, Int32 count, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named texture images to a sequence of consecutive image units
@@ -4651,7 +4651,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindImageTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindImageTextures(UInt32 first, Int32 count, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Bind a program pipeline to the current context
@@ -4739,7 +4739,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(Int32 first, Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -4755,7 +4755,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(Int32 first, Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -4771,7 +4771,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void BindSamplers(Int32 first, Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void BindSamplers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -4787,7 +4787,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(UInt32 first, Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -4803,7 +4803,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static void BindSamplers(UInt32 first, Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named sampler objects to a sequence of consecutive sampler units
@@ -4819,7 +4819,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void BindSamplers(UInt32 first, Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void BindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Bind a named texture to a texturing target
@@ -4861,7 +4861,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(Int32 first, Int32 count, Int32[] textures) { throw new NotImplementedException(); }
+        public static void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -4877,7 +4877,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(Int32 first, Int32 count, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -4893,7 +4893,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindTextures(Int32 first, Int32 count, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindTextures(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -4909,7 +4909,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(UInt32 first, Int32 count, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -4925,7 +4925,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static void BindTextures(UInt32 first, Int32 count, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named textures to a sequence of consecutive texture units
@@ -4941,7 +4941,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindTextures")]
         [CLSCompliant(false)]
-        public static unsafe void BindTextures(UInt32 first, Int32 count, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void BindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="unit"></param>
@@ -5061,7 +5061,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(Int32 first, Int32 count, Int32[] buffers, IntPtr[] offsets, Int32[] strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] Int32[] strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -5083,7 +5083,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(Int32 first, Int32 count, ref Int32 buffers, ref IntPtr offsets, ref Int32 strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref Int32 strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -5105,7 +5105,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void BindVertexBuffers(Int32 first, Int32 count, Int32* buffers, IntPtr* offsets, Int32* strides) { throw new NotImplementedException(); }
+        public static unsafe void BindVertexBuffers(Int32 first, Int32 count, [CountAttribute(Parameter = "count")] Int32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -5127,7 +5127,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(UInt32 first, Int32 count, UInt32[] buffers, IntPtr[] offsets, Int32[] strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] buffers, [CountAttribute(Parameter = "count")] IntPtr[] offsets, [CountAttribute(Parameter = "count")] Int32[] strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -5149,7 +5149,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static void BindVertexBuffers(UInt32 first, Int32 count, ref UInt32 buffers, ref IntPtr offsets, ref Int32 strides) { throw new NotImplementedException(); }
+        public static void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 buffers, [CountAttribute(Parameter = "count")] ref IntPtr offsets, [CountAttribute(Parameter = "count")] ref Int32 strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_multi_bind|VERSION_4_4]
         /// Bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
@@ -5171,7 +5171,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_bind|VERSION_4_4", Version = "4.4", EntryPoint = "glBindVertexBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void BindVertexBuffers(UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, Int32* strides) { throw new NotImplementedException(); }
+        public static unsafe void BindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4 or ARB_imaging|VERSION_1_4]
         /// Set the blend color
@@ -5462,7 +5462,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Creates and initializes a buffer object's data store
@@ -5481,7 +5481,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5502,7 +5502,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5523,7 +5523,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5543,7 +5543,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5563,7 +5563,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage) { throw new NotImplementedException(); }
+        public static void BufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Creates and initializes a buffer object's data store
@@ -5582,7 +5582,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5603,7 +5603,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5624,7 +5624,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
         [CLSCompliant(false)]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5644,7 +5644,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the expected usage pattern of the data store. The symbolic constant must be StreamDraw, StreamRead, StreamCopy, StaticDraw, StaticRead, StaticCopy, DynamicDraw, DynamicRead, or DynamicCopy.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
-        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
+        public static void BufferData<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL4.BufferUsageHint usage)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5664,7 +5664,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, IntPtr data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags) { throw new NotImplementedException(); }
+        public static void BufferStorage(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_buffer_storage|VERSION_4_4]
         /// Creates and initializes a buffer object's immutable data store
@@ -5683,7 +5683,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5704,7 +5704,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5725,7 +5725,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5745,7 +5745,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5765,7 +5765,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags) { throw new NotImplementedException(); }
+        public static void BufferStorage(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_buffer_storage|VERSION_4_4]
         /// Creates and initializes a buffer object's immutable data store
@@ -5784,7 +5784,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5805,7 +5805,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5826,7 +5826,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
         [CLSCompliant(false)]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T2[,,] data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5846,7 +5846,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags. DynamicStorageBit, MapReadBitMapWriteBit, MapPersistentBit, MapCoherentBit, and ClientStorageBit.
         /// </param>
         [AutoGenerated(Category = "ARB_buffer_storage|VERSION_4_4", Version = "4.4", EntryPoint = "glBufferStorage")]
-        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
+        public static void BufferStorage<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T2 data, OpenTK.Graphics.OpenGL4.BufferStorageFlags flags)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -5866,7 +5866,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Updates a subset of a buffer object's data store
@@ -5885,7 +5885,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -5906,7 +5906,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -5927,7 +5927,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -5947,7 +5947,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -5967,7 +5967,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, IntPtr data) { throw new NotImplementedException(); }
+        public static void BufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Updates a subset of a buffer object's data store
@@ -5986,7 +5986,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6007,7 +6007,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6028,7 +6028,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
         [CLSCompliant(false)]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6048,7 +6048,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the new data that will be copied into the data store.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
-        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void BufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -6111,11 +6111,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
-        public static void ClearBufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill a buffer object's data store with a fixed value
@@ -6132,12 +6132,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -6156,12 +6156,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -6180,12 +6180,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
         [CLSCompliant(false)]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -6204,11 +6204,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferData")]
-        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearBufferData<T4>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -6239,12 +6239,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, Single[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6255,12 +6255,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, ref Single value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6271,12 +6271,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6287,12 +6287,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, Int32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6303,12 +6303,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6319,12 +6319,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -6347,11 +6347,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -6374,12 +6374,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6404,12 +6404,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6434,12 +6434,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[,,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6464,11 +6464,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] ref T6 data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, Int32 size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6493,11 +6493,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_clear_buffer_object|VERSION_4_3]
         /// Fill all or part of buffer object's data store with a fixed value
@@ -6520,12 +6520,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6550,12 +6550,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6580,12 +6580,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
         [CLSCompliant(false)]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] T6[,,] data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6610,11 +6610,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data in memory addressed by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address of a memory location storing the data to be replicated into the buffer's data store.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_buffer_object|VERSION_4_3", Version = "4.3", EntryPoint = "glClearBufferSubData")]
-        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute] ref T6 data)
+        public static void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.All type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -6627,12 +6627,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6643,12 +6643,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Clear individual buffers of the currently bound draw framebuffer
@@ -6659,12 +6659,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="drawbuffer">
         /// Specify a particular draw buffer to clear.
         /// </param>
-        /// <param name="value">[length: buffer]
+        /// <param name="value">[length: COMPSIZE(buffer)]
         /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
         [CLSCompliant(false)]
-        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ClearBuffer(OpenTK.Graphics.OpenGL4.ClearBuffer buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify clear values for the color buffers
@@ -7131,12 +7131,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexImage(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all a texture image with a constant value
@@ -7153,12 +7153,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7177,12 +7177,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7201,12 +7201,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7225,12 +7225,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearTexImage<T4>(Int32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7249,12 +7249,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexImage(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all a texture image with a constant value
@@ -7271,12 +7271,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7295,12 +7295,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7319,12 +7319,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,,] data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T4[,,] data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7343,12 +7343,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexImage")]
         [CLSCompliant(false)]
-        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T4 data)
+        public static void ClearTexImage<T4>(UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T4 data)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -7385,12 +7385,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexSubImage(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all or part of a texture image with a constant value
@@ -7425,12 +7425,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7467,12 +7467,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7509,12 +7509,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,,] data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7551,12 +7551,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T10 data)
+        public static void ClearTexSubImage<T10>(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7593,12 +7593,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.4 or ARB_clear_texture|VERSION_4_4]
         /// Fills all or part of a texture image with a constant value
@@ -7633,12 +7633,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7675,12 +7675,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7717,12 +7717,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,,] data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7759,12 +7759,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data whose address in memory is given by data.
         /// </param>
-        /// <param name="data">[length: format,type]
+        /// <param name="data">[length: COMPSIZE(format,type)]
         /// The address in memory of the data to be used to clear the specified region.
         /// </param>
         [AutoGenerated(Category = "ARB_clear_texture|VERSION_4_4", Version = "4.4", EntryPoint = "glClearTexSubImage")]
         [CLSCompliant(false)]
-        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T10 data)
+        public static void ClearTexSubImage<T10>(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -7887,14 +7887,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -7915,14 +7915,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glColorP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void ColorP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Respecify a portion of a color table
@@ -7942,11 +7942,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
-        public static void ColorSubTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr data) { throw new NotImplementedException(); }
+        public static void ColorSubTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,count")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Respecify a portion of a color table
@@ -7966,12 +7966,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -7993,12 +7993,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8020,12 +8020,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
         [CLSCompliant(false)]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,,] data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] T5[,,] data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8047,11 +8047,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="data">[length: format,type,count]
+        /// <param name="data">[length: COMPSIZE(format,type,count)]
         /// Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorSubTable")]
-        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T5 data)
+        public static void ColorSubTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,count")] ref T5 data)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8073,11 +8073,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
-        public static void ColorTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr table) { throw new NotImplementedException(); }
+        public static void ColorTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr table) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a color lookup table
@@ -8097,12 +8097,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8124,12 +8124,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8151,12 +8151,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
         [CLSCompliant(false)]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8178,11 +8178,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. The allowable values are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="table">[length: format,type,width]
+        /// <param name="table">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTable")]
-        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T5 table)
+        public static void ColorTable<T5>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 table)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -8195,12 +8195,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -8211,12 +8211,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, ref Single @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] ref Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -8227,12 +8227,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -8243,12 +8243,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -8259,12 +8259,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, ref Int32 @params) { throw new NotImplementedException(); }
+        public static void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set color lookup table parameters
@@ -8275,12 +8275,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a texture color lookup table parameter. Must be one of ColorTableScale or ColorTableBias.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameters are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.ColorTableParameterPName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Compiles a shader object
@@ -8327,7 +8327,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
-        public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a one-dimensional texture image in a compressed format
@@ -8355,7 +8355,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8385,7 +8385,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8415,7 +8415,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8444,7 +8444,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
-        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+        public static void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8476,7 +8476,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a two-dimensional texture image in a compressed format
@@ -8507,7 +8507,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -8540,7 +8540,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -8573,7 +8573,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T7[,,] data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -8605,7 +8605,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
-        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T7 data)
+        public static void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T7 data)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -8640,7 +8640,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a three-dimensional texture image in a compressed format
@@ -8674,7 +8674,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -8710,7 +8710,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -8746,7 +8746,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -8781,7 +8781,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
-        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -8810,7 +8810,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
-        public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a one-dimensional texture subimage in a compressed format
@@ -8838,7 +8838,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8868,7 +8868,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8898,7 +8898,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T6[,,] data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8927,7 +8927,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
-        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T6 data)
+        public static void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T6 data)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -8962,7 +8962,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a two-dimensional texture subimage in a compressed format
@@ -8996,7 +8996,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -9032,7 +9032,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -9068,7 +9068,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T8[,,] data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -9103,7 +9103,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
-        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T8 data)
+        public static void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T8 data)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -9144,7 +9144,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, IntPtr data) { throw new NotImplementedException(); }
+        public static void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Specify a three-dimensional texture subimage in a compressed format
@@ -9184,7 +9184,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -9226,7 +9226,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -9268,7 +9268,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] T10[,,] data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -9309,7 +9309,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the compressed image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
-        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] ref T10 data)
+        public static void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "imageSize")] ref T10 data)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -9799,11 +9799,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
-        public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+        public static void ConvolutionFilter1D(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a one-dimensional convolution filter
@@ -9823,12 +9823,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9850,12 +9850,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9877,12 +9877,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T5[,,] image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9904,11 +9904,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width]
+        /// <param name="image">[length: COMPSIZE(format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter1D")]
-        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T5 image)
+        public static void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T5 image)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -9933,11 +9933,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
-        public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr image) { throw new NotImplementedException(); }
+        public static void ConvolutionFilter2D(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a two-dimensional convolution filter
@@ -9960,12 +9960,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -9990,12 +9990,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -10020,12 +10020,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
         [CLSCompliant(false)]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -10050,11 +10050,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in data. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: format,type,width,height]
+        /// <param name="image">[length: COMPSIZE(format,type,width,height)]
         /// Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionFilter2D")]
-        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T6 image)
+        public static void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 image)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -10082,12 +10082,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -10098,12 +10098,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -10129,12 +10129,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Set convolution parameters
@@ -10145,12 +10145,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be set. Must be ConvolutionBorderMode.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The parameter value. Must be one of Reduce, ConstantBorder, ReplicateBorder.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.ConvolutionParameter pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_copy_buffer|VERSION_3_1]
         /// Copy part of the data store of a buffer object to the data store of another buffer object
@@ -10911,7 +10911,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the address of an array of pointers to source code strings from which to create the program object.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glCreateShaderProgramv")]
-        public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL4.ShaderType type, Int32 count, String[] strings) { throw new NotImplementedException(); }
+        public static Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL4.ShaderType type, Int32 count, [CountAttribute(Parameter = "count")] String[] strings) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="target"></param>
@@ -11148,7 +11148,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, Int32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -11173,7 +11173,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -11198,7 +11198,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, Int32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] Int32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -11223,7 +11223,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -11248,7 +11248,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
+        public static void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Control the reporting of debug messages in a debug context
@@ -11273,7 +11273,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageControl")]
         [CLSCompliant(false)]
-        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, UInt32* ids, bool enabled) { throw new NotImplementedException(); }
+        public static unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL4.DebugSourceControl source, OpenTK.Graphics.OpenGL4.DebugTypeControl type, OpenTK.Graphics.OpenGL4.DebugSeverityControl severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Inject an application-supplied message into the debug message queue
@@ -11293,12 +11293,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, OpenTK.Graphics.OpenGL4.DebugType type, Int32 id, OpenTK.Graphics.OpenGL4.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, OpenTK.Graphics.OpenGL4.DebugType type, Int32 id, OpenTK.Graphics.OpenGL4.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Inject an application-supplied message into the debug message queue
@@ -11318,12 +11318,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length string contained in the character array whose address is given by message.
         /// </param>
-        /// <param name="buf">[length: buf,length]
+        /// <param name="buf">[length: COMPSIZE(buf,length)]
         /// The address of a character array containing the message to insert.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
         [CLSCompliant(false)]
-        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, OpenTK.Graphics.OpenGL4.DebugType type, UInt32 id, OpenTK.Graphics.OpenGL4.DebugSeverity severity, Int32 length, String buf) { throw new NotImplementedException(); }
+        public static void DebugMessageInsert(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, OpenTK.Graphics.OpenGL4.DebugType type, UInt32 id, OpenTK.Graphics.OpenGL4.DebugSeverity severity, Int32 length, [CountAttribute(Computed = "buf,length")] String buf) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11333,7 +11333,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11343,7 +11343,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffer(UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffer([CountAttribute(Parameter = "n")] UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11356,7 +11356,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, Int32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11369,7 +11369,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref Int32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11382,7 +11382,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11395,7 +11395,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11408,7 +11408,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static void DeleteBuffers(Int32 n, ref UInt32 buffers) { throw new NotImplementedException(); }
+        public static void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named buffer objects
@@ -11421,7 +11421,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteBuffers(Int32 n, UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11431,7 +11431,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11441,7 +11441,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffer(UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffer([CountAttribute(Parameter = "n")] UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11454,7 +11454,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11467,7 +11467,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11480,7 +11480,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11493,7 +11493,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11506,7 +11506,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static void DeleteFramebuffers(Int32 n, ref UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete framebuffer objects
@@ -11519,7 +11519,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteFramebuffers(Int32 n, UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Deletes a program object
@@ -11549,7 +11549,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11559,7 +11559,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipeline(UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipeline([CountAttribute(Parameter = "n")] UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11572,7 +11572,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11585,7 +11585,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref Int32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11598,7 +11598,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11611,7 +11611,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11624,7 +11624,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Delete program pipeline objects
@@ -11637,7 +11637,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void DeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11647,7 +11647,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11657,7 +11657,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQuery(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQuery([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11670,7 +11670,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11683,7 +11683,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11696,7 +11696,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11709,7 +11709,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11722,7 +11722,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static void DeleteQueries(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Delete named query objects
@@ -11735,7 +11735,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glDeleteQueries")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteQueries(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11745,7 +11745,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11755,7 +11755,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffer(UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffer([CountAttribute(Parameter = "n")] UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11768,7 +11768,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11781,7 +11781,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11794,7 +11794,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11807,7 +11807,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11820,7 +11820,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static void DeleteRenderbuffers(Int32 n, ref UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Delete renderbuffer objects
@@ -11833,7 +11833,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteRenderbuffers(Int32 n, UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11843,7 +11843,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11853,7 +11853,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSampler(UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSampler([CountAttribute(Parameter = "count")] UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11866,7 +11866,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, Int32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11879,7 +11879,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref Int32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11892,7 +11892,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11905,7 +11905,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11918,7 +11918,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static void DeleteSamplers(Int32 count, ref UInt32 samplers) { throw new NotImplementedException(); }
+        public static void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Delete named sampler objects
@@ -11931,7 +11931,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glDeleteSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteSamplers(Int32 count, UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void DeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Deletes a shader object
@@ -11970,7 +11970,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -11980,7 +11980,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTexture(UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTexture([CountAttribute(Parameter = "n")] UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -11993,7 +11993,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, Int32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -12006,7 +12006,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref Int32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -12019,7 +12019,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -12032,7 +12032,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, UInt32[] textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -12045,7 +12045,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static void DeleteTextures(Int32 n, ref UInt32 textures) { throw new NotImplementedException(); }
+        public static void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Delete named textures
@@ -12058,7 +12058,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDeleteTextures")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTextures(Int32 n, UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12068,7 +12068,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12078,7 +12078,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedback(UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedback([CountAttribute(Parameter = "n")] UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12091,7 +12091,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, Int32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12104,7 +12104,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref Int32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12117,7 +12117,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12130,7 +12130,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, UInt32[] ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12143,7 +12143,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void DeleteTransformFeedbacks(Int32 n, ref UInt32 ids) { throw new NotImplementedException(); }
+        public static void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Delete transform feedback objects
@@ -12156,7 +12156,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glDeleteTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteTransformFeedbacks(Int32 n, UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void DeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12166,7 +12166,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12176,7 +12176,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArray(UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArray([CountAttribute(Parameter = "n")] UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12189,7 +12189,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, Int32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12202,7 +12202,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref Int32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12215,7 +12215,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12228,7 +12228,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12241,7 +12241,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static void DeleteVertexArrays(Int32 n, ref UInt32 arrays) { throw new NotImplementedException(); }
+        public static void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] ref UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Delete vertex array objects
@@ -12254,7 +12254,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glDeleteVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void DeleteVertexArrays(Int32 n, UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void DeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the value used for depth buffer comparisons
@@ -12295,12 +12295,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(Int32 first, Int32 count, Double[] v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -12311,12 +12311,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(Int32 first, Int32 count, ref Double v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -12327,12 +12327,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void DepthRangeArray(Int32 first, Int32 count, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void DepthRangeArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -12343,12 +12343,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(UInt32 first, Int32 count, Double[] v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -12359,12 +12359,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static void DepthRangeArray(UInt32 first, Int32 count, ref Double v) { throw new NotImplementedException(); }
+        public static void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
@@ -12375,12 +12375,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of viewports whose depth range to update.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void DepthRangeArray(UInt32 first, Int32 count, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void DepthRangeArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Specify mapping of depth values from normalized device coordinates to window coordinates
@@ -12706,7 +12706,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL4.DrawBuffersEnum[] bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL4.DrawBuffersEnum[] bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies a list of color buffers to be drawn into
@@ -12719,7 +12719,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL4.DrawBuffersEnum bufs) { throw new NotImplementedException(); }
+        public static void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] ref OpenTK.Graphics.OpenGL4.DrawBuffersEnum bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies a list of color buffers to be drawn into
@@ -12732,7 +12732,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL4.DrawBuffersEnum* bufs) { throw new NotImplementedException(); }
+        public static unsafe void DrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] OpenTK.Graphics.OpenGL4.DrawBuffersEnum* bufs) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -12746,11 +12746,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, Int32 indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] Int32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -12764,11 +12764,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Render primitives from array data
@@ -12782,12 +12782,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12803,12 +12803,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12824,12 +12824,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
         [CLSCompliant(false)]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12845,11 +12845,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
-        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices)
+        public static void DrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12865,14 +12865,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -12886,7 +12886,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -12894,7 +12894,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12910,7 +12910,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -12918,7 +12918,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12934,7 +12934,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -12942,7 +12942,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -12958,14 +12958,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
-        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 basevertex)
+        public static void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13067,14 +13067,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
+        public static void DrawElementsInstanced(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1]
         /// Draw multiple instances of a set of elements
@@ -13088,7 +13088,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13096,7 +13096,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13112,7 +13112,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13120,7 +13120,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13136,7 +13136,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13144,7 +13144,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13160,14 +13160,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
         /// Specifies the number of instances of the specified range of indices to be rendered.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
-        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
+        public static void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13194,7 +13194,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Draw multiple instances of a set of elements with offset applied to instanced attributes
@@ -13219,7 +13219,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount, UInt32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, UInt32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Draw multiple instances of a set of elements with offset applied to instanced attributes
@@ -13244,7 +13244,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13271,7 +13271,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13298,7 +13298,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13325,7 +13325,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13352,7 +13352,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13379,7 +13379,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13406,7 +13406,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13433,7 +13433,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13449,7 +13449,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13459,7 +13459,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -13473,7 +13473,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13484,7 +13484,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13500,7 +13500,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13511,7 +13511,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13527,7 +13527,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13538,7 +13538,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T3[,,] indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13554,7 +13554,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="instancecount">
@@ -13564,7 +13564,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
-        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex)
+        public static void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T3 indices, Int32 instancecount, Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13594,7 +13594,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -13622,7 +13622,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance) { throw new NotImplementedException(); }
+        public static void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_base_instance|VERSION_4_2]
         /// Render multiple instances of a set of primitives from array data with a per-element offset
@@ -13650,7 +13650,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13680,7 +13680,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13710,7 +13710,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13740,7 +13740,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13770,7 +13770,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13800,7 +13800,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] T3[,,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13830,7 +13830,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13860,7 +13860,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_base_instance|VERSION_4_2", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
         [CLSCompliant(false)]
-        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
+        public static void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Parameter = "count")] ref T3 indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -13882,12 +13882,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -13907,12 +13907,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -13934,12 +13934,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -13961,12 +13961,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -13988,12 +13988,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14015,12 +14015,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices) { throw new NotImplementedException(); }
+        public static void DrawRangeElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Render primitives from array data
@@ -14040,12 +14040,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14067,12 +14067,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14094,12 +14094,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14121,12 +14121,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
         [CLSCompliant(false)]
-        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices)
+        public static void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14148,7 +14148,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14156,7 +14156,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -14176,7 +14176,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14184,7 +14184,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14206,7 +14206,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14214,7 +14214,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14236,7 +14236,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14244,7 +14244,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14266,7 +14266,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14274,7 +14274,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14296,7 +14296,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14304,7 +14304,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
+        public static void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render primitives from array data with a per-element offset
@@ -14324,7 +14324,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14332,7 +14332,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14354,7 +14354,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14362,7 +14362,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14384,7 +14384,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14392,7 +14392,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] T5[,,] indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14414,7 +14414,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: count,type]
+        /// <param name="indices">[length: COMPSIZE(count,type)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="basevertex">
@@ -14422,7 +14422,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T5 indices, Int32 basevertex)
+        public static void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "count,type")] ref T5 indices, Int32 basevertex)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -14944,7 +14944,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] Int32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -14957,7 +14957,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out Int32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -14970,7 +14970,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -14983,7 +14983,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] UInt32[] buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -14996,7 +14996,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static void GenBuffers(Int32 n, [OutAttribute] out UInt32 buffers) { throw new NotImplementedException(); }
+        public static void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate buffer object names
@@ -15009,7 +15009,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers) { throw new NotImplementedException(); }
+        public static unsafe void GenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate mipmaps for a specified texture target
@@ -15050,7 +15050,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] Int32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -15063,7 +15063,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out Int32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -15076,7 +15076,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -15089,7 +15089,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] UInt32[] framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -15102,7 +15102,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static void GenFramebuffers(Int32 n, [OutAttribute] out UInt32 framebuffers) { throw new NotImplementedException(); }
+        public static void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate framebuffer object names
@@ -15115,7 +15115,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenFramebuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15135,7 +15135,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15148,7 +15148,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15161,7 +15161,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15174,7 +15174,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15187,7 +15187,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines) { throw new NotImplementedException(); }
+        public static void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Reserve program pipeline object names
@@ -15200,7 +15200,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
         [CLSCompliant(false)]
-        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines) { throw new NotImplementedException(); }
+        public static unsafe void GenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15220,7 +15220,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15233,7 +15233,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15246,7 +15246,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15259,7 +15259,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15272,7 +15272,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static void GenQueries(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Generate query object names
@@ -15285,7 +15285,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
         [CLSCompliant(false)]
-        public static unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15305,7 +15305,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] Int32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15318,7 +15318,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out Int32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15331,7 +15331,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15344,7 +15344,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] UInt32[] renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15357,7 +15357,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static void GenRenderbuffers(Int32 n, [OutAttribute] out UInt32 renderbuffers) { throw new NotImplementedException(); }
+        public static void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Generate renderbuffer object names
@@ -15370,7 +15370,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
         [CLSCompliant(false)]
-        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers) { throw new NotImplementedException(); }
+        public static unsafe void GenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15390,7 +15390,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] Int32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15403,7 +15403,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out Int32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15416,7 +15416,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] Int32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] Int32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15429,7 +15429,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] UInt32[] samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15442,7 +15442,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static void GenSamplers(Int32 count, [OutAttribute] out UInt32 samplers) { throw new NotImplementedException(); }
+        public static void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Generate sampler object names
@@ -15455,7 +15455,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGenSamplers")]
         [CLSCompliant(false)]
-        public static unsafe void GenSamplers(Int32 count, [OutAttribute] UInt32* samplers) { throw new NotImplementedException(); }
+        public static unsafe void GenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15475,7 +15475,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] Int32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15488,7 +15488,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out Int32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15501,7 +15501,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15514,7 +15514,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] UInt32[] textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15527,7 +15527,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static void GenTextures(Int32 n, [OutAttribute] out UInt32 textures) { throw new NotImplementedException(); }
+        public static void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Generate texture names
@@ -15540,7 +15540,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
         [CLSCompliant(false)]
-        public static unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures) { throw new NotImplementedException(); }
+        public static unsafe void GenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15560,7 +15560,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15573,7 +15573,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out Int32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15586,7 +15586,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] Int32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15599,7 +15599,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32[] ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15612,7 +15612,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static void GenTransformFeedbacks(Int32 n, [OutAttribute] out UInt32 ids) { throw new NotImplementedException(); }
+        public static void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback2|VERSION_4_0]
         /// Reserve transform feedback object names
@@ -15625,7 +15625,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback2|VERSION_4_0", Version = "4.0", EntryPoint = "glGenTransformFeedbacks")]
         [CLSCompliant(false)]
-        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids) { throw new NotImplementedException(); }
+        public static unsafe void GenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15645,7 +15645,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] Int32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15658,7 +15658,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out Int32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out Int32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15671,7 +15671,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] Int32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15684,7 +15684,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] UInt32[] arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32[] arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15697,7 +15697,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static void GenVertexArrays(Int32 n, [OutAttribute] out UInt32 arrays) { throw new NotImplementedException(); }
+        public static void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] out UInt32 arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_vertex_array_object|VERSION_3_0]
         /// Generate vertex array object names
@@ -15710,7 +15710,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_vertex_array_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGenVertexArrays")]
         [CLSCompliant(false)]
-        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays) { throw new NotImplementedException(); }
+        public static unsafe void GenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15724,12 +15724,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15743,12 +15743,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15762,12 +15762,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15781,12 +15781,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15800,12 +15800,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_shader_atomic_counters|VERSION_4_2]
         /// Retrieve information about the set of active atomic counter buffers for a program
@@ -15819,12 +15819,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies which parameter of the atomic counter buffer to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which to write the retrieved information.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_atomic_counters|VERSION_4_2", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL4.AtomicCounterBufferParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -15852,7 +15852,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -15880,7 +15880,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -15908,7 +15908,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.ActiveAttribType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.ActiveAttribType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active attribute variable for the specified program object
@@ -15936,7 +15936,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.ActiveAttribType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.ActiveAttribType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -15961,7 +15961,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -15986,7 +15986,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -16011,7 +16011,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine
@@ -16036,7 +16036,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16053,12 +16053,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16075,12 +16075,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16097,12 +16097,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16119,12 +16119,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16141,12 +16141,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query a property of an active shader subroutine uniform
@@ -16163,12 +16163,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of the shader subroutine uniform to query. pname must be NumCompatibleSubroutines, CompatibleSubroutines, UniformSize or UniformNameLength.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of a into which the queried value or values will be placed.
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL4.ActiveSubroutineUniformParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -16193,7 +16193,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -16218,7 +16218,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -16243,7 +16243,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Query the name of an active shader subroutine uniform
@@ -16268,7 +16268,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetActiveSubroutineUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -16296,7 +16296,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -16324,7 +16324,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -16352,7 +16352,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.ActiveUniformType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.ActiveUniformType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns information about an active uniform variable for the specified program object
@@ -16380,7 +16380,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.ActiveUniformType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.ActiveUniformType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16394,12 +16394,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16413,12 +16413,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16432,12 +16432,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16451,12 +16451,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16470,12 +16470,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query information about an active uniform block
@@ -16489,12 +16489,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to query.
         /// </param>
-        /// <param name="@params">[length: program,uniformBlockIndex,pname]
+        /// <param name="@params">[length: COMPSIZE(program,uniformBlockIndex,pname)]
         /// Specifies the address of a variable to receive the result of the query.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL4.ActiveUniformBlockParameter pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -16516,7 +16516,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -16538,7 +16538,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -16560,7 +16560,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the name of an active uniform block
@@ -16582,7 +16582,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformBlockName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -16604,7 +16604,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -16626,7 +16626,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -16648,7 +16648,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Query the name of an active uniform
@@ -16670,7 +16670,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformName")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder uniformName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16687,12 +16687,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32[] uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16709,12 +16709,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref Int32 uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16731,12 +16731,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] Int32* uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16753,12 +16753,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32[] uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16775,12 +16775,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] ref UInt32 uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Returns information about several active uniform variables for the specified program object
@@ -16797,12 +16797,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the property of each uniform in uniformIndices that should be written into the corresponding element of params.
         /// </param>
-        /// <param name="@params">[length: uniformCount,pname]
+        /// <param name="@params">[length: COMPSIZE(uniformCount,pname)]
         /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetActiveUniformsiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, OpenTK.Graphics.OpenGL4.ActiveUniformParameter pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16821,7 +16821,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] Int32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16840,7 +16840,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out Int32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out Int32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16859,7 +16859,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] Int32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16878,7 +16878,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] UInt32[] shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32[] shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16897,7 +16897,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] out UInt32 shaders) { throw new NotImplementedException(); }
+        public static void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] out Int32 count, [OutAttribute, CountAttribute(Parameter = "maxCount")] out UInt32 shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the handles of the shader objects attached to a program object
@@ -16916,7 +16916,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
         [CLSCompliant(false)]
-        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders) { throw new NotImplementedException(); }
+        public static unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the location of an attribute variable
@@ -16947,50 +16947,50 @@ namespace OpenTK.Graphics.OpenGL4
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -17000,24 +17000,24 @@ namespace OpenTK.Graphics.OpenGL4
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] bool[] data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] out bool data) { throw new NotImplementedException(); }
+        public static void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out bool data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] bool* data) { throw new NotImplementedException(); }
+        public static unsafe void GetBoolean(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -17028,12 +17028,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -17044,12 +17044,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]
         /// Return parameters of a buffer object
@@ -17060,12 +17060,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -17076,12 +17076,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -17092,12 +17092,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a buffer object
@@ -17108,12 +17108,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a buffer object parameter. Accepted values are BufferAccess, BufferMapped, BufferSize, or BufferUsage.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return the pointer to a mapped buffer object's data store
@@ -17128,7 +17128,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetBufferPointer(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return the pointer to a mapped buffer object's data store
@@ -17144,7 +17144,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17162,7 +17162,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17180,7 +17180,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
         [CLSCompliant(false)]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17197,7 +17197,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
-        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute] ref T2 @params)
+        public static void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL4.BufferTarget target, OpenTK.Graphics.OpenGL4.BufferPointer pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 @params)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17217,7 +17217,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+        public static void GetBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Returns a subset of a buffer object's data store
@@ -17236,7 +17236,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17257,7 +17257,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17278,7 +17278,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17298,7 +17298,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute] ref T3 data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, Int32 size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17318,7 +17318,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+        public static void GetBufferSubData(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Returns a subset of a buffer object's data store
@@ -17337,7 +17337,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17358,7 +17358,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17379,7 +17379,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
         [CLSCompliant(false)]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T3[,,] data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17399,7 +17399,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies a pointer to the location where buffer object data is returned.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
-        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] ref T3 data)
+        public static void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL4.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T3 data)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17415,11 +17415,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
-        public static void GetColorTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr table) { throw new NotImplementedException(); }
+        public static void GetColorTable(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Retrieve contents of a color lookup table
@@ -17433,12 +17433,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17454,12 +17454,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17475,12 +17475,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
         [CLSCompliant(false)]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17496,11 +17496,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in table. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="table">[length: target,format,type]
+        /// <param name="table">[length: COMPSIZE(target,format,type)]
         /// Pointer to a one-dimensional array of pixel data containing the contents of the color table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTable")]
-        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T3 table)
+        public static void GetColorTable<T3>(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 table)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -17513,12 +17513,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -17529,12 +17529,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -17545,12 +17545,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -17561,12 +17561,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -17577,12 +17577,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get color lookup table parameters
@@ -17593,12 +17593,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The symbolic name of a color lookup table parameter. Must be one of ColorTableBias, ColorTableScale, ColorTableFormat, ColorTableWidth, ColorTableRedSize, ColorTableGreenSize, ColorTableBlueSize, ColorTableAlphaSize, ColorTableLuminanceSize, or ColorTableIntensitySize.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to an array where the values of the parameter will be stored.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetColorTableParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL4.ColorTableTarget target, OpenTK.Graphics.OpenGL4.GetColorTableParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Return a compressed texture image
@@ -17609,11 +17609,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
-        public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [OutAttribute] IntPtr img) { throw new NotImplementedException(); }
+        public static void GetCompressedTexImage(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.3]
         /// Return a compressed texture image
@@ -17624,12 +17624,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17642,12 +17642,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17660,12 +17660,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
         [CLSCompliant(false)]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,,] img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] T2[,,] img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17678,11 +17678,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="level">
         /// Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level  is the th mipmap reduction image.
         /// </param>
-        /// <param name="img">[length: target,level]
+        /// <param name="img">[length: COMPSIZE(target,level)]
         /// Returns the compressed texture image.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
-        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute] ref T2 img)
+        public static void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level")] ref T2 img)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -17970,11 +17970,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
-        public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr image) { throw new NotImplementedException(); }
+        public static void GetConvolutionFilter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get current 1D or 2D convolution filter kernel
@@ -17988,12 +17988,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -18009,12 +18009,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -18030,12 +18030,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
         [CLSCompliant(false)]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -18051,11 +18051,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output image. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="image">[length: target,format,type]
+        /// <param name="image">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the output image.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionFilter")]
-        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T3 image)
+        public static void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 image)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -18068,12 +18068,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -18084,12 +18084,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -18100,12 +18100,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -18116,12 +18116,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -18132,12 +18132,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get convolution parameters
@@ -18148,12 +18148,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of ConvolutionBorderMode, ConvolutionBorderColor, ConvolutionFilterScale, ConvolutionFilterBias, ConvolutionFormat, ConvolutionWidth, ConvolutionHeight, MaxConvolutionWidth, or MaxConvolutionHeight.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the parameters to be retrieved.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetConvolutionParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL4.ConvolutionTarget target, OpenTK.Graphics.OpenGL4.GetConvolutionParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18184,7 +18184,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSource[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugType[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSource[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18215,7 +18215,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugSource sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugType types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugSource sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18246,7 +18246,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSource* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugType* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSource* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18277,7 +18277,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSource[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugType[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSeverity[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSource[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugType[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSeverity[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18308,7 +18308,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugSource sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugType types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.DebugSeverity severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugSource sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugType types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.DebugSeverity severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve messages from the debug message log
@@ -18339,55 +18339,55 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
         [CLSCompliant(false)]
-        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSource* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugType* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.DebugSeverity* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+        public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSource* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugType* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.DebugSeverity* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetDoublei_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -18397,24 +18397,24 @@ namespace OpenTK.Graphics.OpenGL4
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Double[] data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] out Double data) { throw new NotImplementedException(); }
+        public static void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
         [CLSCompliant(false)]
-        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Double* data) { throw new NotImplementedException(); }
+        public static unsafe void GetDouble(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return error information
@@ -18425,50 +18425,50 @@ namespace OpenTK.Graphics.OpenGL4
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glGetFloati_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -18478,24 +18478,24 @@ namespace OpenTK.Graphics.OpenGL4
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Single[] data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] out Single data) { throw new NotImplementedException(); }
+        public static void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Single* data) { throw new NotImplementedException(); }
+        public static unsafe void GetFloat(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_blend_func_extended|VERSION_3_3]
         /// Query the bindings of color indices to user-defined varying out variables
@@ -18529,12 +18529,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(Int32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(Int32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Query the bindings of color numbers to user-defined varying out variables
@@ -18542,12 +18542,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="program">
         /// The name of the program containing varying out variable whose binding to query
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the user-defined varying out variable whose binding to query
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetFragDataLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetFragDataLocation(UInt32 program, String name) { throw new NotImplementedException(); }
+        public static Int32 GetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -18561,12 +18561,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -18580,12 +18580,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about attachments of a bound framebuffer object
@@ -18599,12 +18599,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter of attachment to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable receive the value of pname for attachment.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL4.FramebufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -18615,12 +18615,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -18631,12 +18631,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_framebuffer_no_attachments|VERSION_4_3]
         /// Retrieve a named parameter from a framebuffer
@@ -18647,12 +18647,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// A token indicating the parameter to be retrieved.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to receive the value of the parameter named pname.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_no_attachments|VERSION_4_3", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetFramebufferParameter(OpenTK.Graphics.OpenGL4.FramebufferTarget target, OpenTK.Graphics.OpenGL4.FramebufferDefaultParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or KHR_robustness|VERSION_4_5]</summary>
         [AutoGenerated(Category = "KHR_robustness|VERSION_4_5", Version = "4.5", EntryPoint = "glGetGraphicsResetStatus")]
@@ -18673,11 +18673,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
-        public static void GetHistogram(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+        public static void GetHistogram(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram table
@@ -18694,12 +18694,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -18718,12 +18718,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -18742,12 +18742,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
         [CLSCompliant(false)]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -18766,11 +18766,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of values to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned histogram table.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogram")]
-        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+        public static void GetHistogram<T4>(OpenTK.Graphics.OpenGL4.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -18783,12 +18783,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -18799,12 +18799,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -18815,12 +18815,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -18831,12 +18831,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -18847,12 +18847,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get histogram parameters
@@ -18863,60 +18863,60 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter to be retrieved. Must be one of HistogramWidth, HistogramFormat, HistogramRedSize, HistogramGreenSize, HistogramBlueSize, HistogramAlphaSize, HistogramLuminanceSize, or HistogramSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetHistogramParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL4.HistogramTarget target, OpenTK.Graphics.OpenGL4.GetHistogramParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
@@ -18926,72 +18926,72 @@ namespace OpenTK.Graphics.OpenGL4
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Int64[] data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] out Int64 data) { throw new NotImplementedException(); }
+        public static void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Int64* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger64(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, Int32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="index"></param>
-        /// <param name="data">[length: target]</param>
+        /// <param name="data">[length: COMPSIZE(target)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetIndexedPName target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
@@ -19001,24 +19001,24 @@ namespace OpenTK.Graphics.OpenGL4
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Int32[] data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] out Int32 data) { throw new NotImplementedException(); }
+        public static void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]</summary>
         /// <param name="pname"></param>
-        /// <param name="data">[length: pname]</param>
+        /// <param name="data">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
         [CLSCompliant(false)]
-        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute] Int32* data) { throw new NotImplementedException(); }
+        public static unsafe void GetInteger(OpenTK.Graphics.OpenGL4.GetPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19040,7 +19040,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19062,7 +19062,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_internalformat_query2|VERSION_4_3]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19084,7 +19084,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query2|VERSION_4_3", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19106,7 +19106,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19128,7 +19128,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_internalformat_query|VERSION_4_2]
         /// Retrieve information about implementation-dependent support for internal formats
@@ -19150,7 +19150,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_internalformat_query|VERSION_4_2", Version = "4.2", EntryPoint = "glGetInternalformativ")]
         [CLSCompliant(false)]
-        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetInternalformat(OpenTK.Graphics.OpenGL4.ImageTarget target, OpenTK.Graphics.OpenGL4.SizedInternalFormat internalformat, OpenTK.Graphics.OpenGL4.InternalFormatParameter pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minimum and maximum pixel values
@@ -19167,11 +19167,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
-        public static void GetMinmax(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr values) { throw new NotImplementedException(); }
+        public static void GetMinmax(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minimum and maximum pixel values
@@ -19188,12 +19188,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -19212,12 +19212,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -19236,12 +19236,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
         [CLSCompliant(false)]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -19260,11 +19260,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the data to be returned in values. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="values">[length: target,format,type]
+        /// <param name="values">[length: COMPSIZE(target,format,type)]
         /// A pointer to storage for the returned values.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmax")]
-        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T4 values)
+        public static void GetMinmax<T4>(OpenTK.Graphics.OpenGL4.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 values)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -19277,12 +19277,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -19293,12 +19293,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -19309,12 +19309,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -19325,12 +19325,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -19341,12 +19341,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get minmax parameters
@@ -19357,12 +19357,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The parameter to be retrieved. Must be one of MinmaxFormat or MinmaxSink.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// A pointer to storage for the retrieved parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetMinmaxParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL4.MinmaxTarget target, OpenTK.Graphics.OpenGL4.GetMinmaxParameterPName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19373,12 +19373,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19389,12 +19389,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19405,12 +19405,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, Int32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19421,12 +19421,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single[] val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single[] val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19437,12 +19437,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute] out Single val) { throw new NotImplementedException(); }
+        public static void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] out Single val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_texture_multisample|VERSION_3_2]
         /// Retrieve the location of a sample
@@ -19453,12 +19453,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="index">
         /// Specifies the index of the sample whose position to query.
         /// </param>
-        /// <param name="val">[length: pname]
+        /// <param name="val">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the position of the sample.
         /// </param>
         [AutoGenerated(Category = "ARB_texture_multisample|VERSION_3_2", Version = "3.2", EntryPoint = "glGetMultisamplefv")]
         [CLSCompliant(false)]
-        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single* val) { throw new NotImplementedException(); }
+        public static unsafe void GetMultisample(OpenTK.Graphics.OpenGL4.GetMultisamplePName pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="buffer"></param>
@@ -20769,7 +20769,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -20791,7 +20791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -20813,7 +20813,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -20835,7 +20835,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -20857,7 +20857,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a named object identified within a namespace
@@ -20879,7 +20879,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -20899,7 +20899,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -20919,7 +20919,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -20939,7 +20939,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+        public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Retrieve the label of a sync object identified by a pointer
@@ -20959,7 +20959,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -20981,7 +20981,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21003,7 +21003,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21025,7 +21025,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21047,7 +21047,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21069,7 +21069,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21091,7 +21091,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21113,7 +21113,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21135,7 +21135,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21157,7 +21157,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21179,7 +21179,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+        public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21201,7 +21201,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+        public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -21215,7 +21215,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3|VERSION_4_3", Version = "4.3", EntryPoint = "glGetPointerv")]
-        public static void GetPointer(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [OutAttribute] IntPtr @params) { throw new NotImplementedException(); }
+        public static void GetPointer(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3|VERSION_4_3]
         /// Return the address of the specified pointer
@@ -21228,7 +21228,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3|VERSION_4_3", Version = "4.3", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -21243,7 +21243,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3|VERSION_4_3", Version = "4.3", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -21258,7 +21258,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3|VERSION_4_3", Version = "4.3", EntryPoint = "glGetPointerv")]
         [CLSCompliant(false)]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T1[,,] @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -21272,7 +21272,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Returns the pointer value specified by pname.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3|VERSION_4_3", Version = "4.3", EntryPoint = "glGetPointerv")]
-        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute] ref T1 @params)
+        public static void GetPointer<T1>(OpenTK.Graphics.OpenGL4.GetPointervPName pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T1 @params)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -21296,7 +21296,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -21318,7 +21318,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21342,7 +21342,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21366,7 +21366,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21390,7 +21390,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21414,7 +21414,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -21436,7 +21436,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21460,7 +21460,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21484,7 +21484,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21508,7 +21508,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21532,7 +21532,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -21554,7 +21554,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21578,7 +21578,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21602,7 +21602,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21626,7 +21626,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21650,7 +21650,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Return a binary representation of a program object's compiled and linked executable source
@@ -21672,7 +21672,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21696,7 +21696,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21720,7 +21720,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T4[,,] binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21744,7 +21744,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramBinary")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
+        public static unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.BinaryFormat* binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T4 binary)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -21765,7 +21765,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -21784,7 +21784,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -21803,7 +21803,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a program object
@@ -21822,7 +21822,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21836,12 +21836,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21855,12 +21855,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21874,12 +21874,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21893,12 +21893,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21912,12 +21912,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query a property of an interface in a program
@@ -21931,12 +21931,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// The name of the parameter within programInterface to query.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// The address of a variable to retrieve the value of pname for the program interface.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, OpenTK.Graphics.OpenGL4.ProgramInterfaceParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -21947,12 +21947,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -21963,12 +21963,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -21979,12 +21979,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -21995,12 +21995,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -22011,12 +22011,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a program object
@@ -22027,12 +22027,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are DeleteStatus, LinkStatus, ValidateStatus, InfoLogLength, AttachedShaders, ActiveAtomicCounterBuffers, ActiveAttributes, ActiveAttributeMaxLength, ActiveUniforms, ActiveUniformBlocks, ActiveUniformBlockMaxNameLength, ActiveUniformMaxLength, ComputeWorkGroupSizeProgramBinaryLength, TransformFeedbackBufferMode, TransformFeedbackVaryings, TransformFeedbackVaryingMaxLength, GeometryVerticesOut, GeometryInputType, and GeometryOutputType.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL4.GetProgramParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -22051,7 +22051,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -22070,7 +22070,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -22089,7 +22089,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve the info log string from a program pipeline object
@@ -22108,7 +22108,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22119,12 +22119,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22135,12 +22135,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22151,12 +22151,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22167,12 +22167,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22183,12 +22183,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Retrieve properties of a program pipeline object
@@ -22199,12 +22199,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to retrieve.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL4.ProgramPipelineParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the index of a named resource within a program
@@ -22215,12 +22215,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the index of a named resource within a program
@@ -22231,12 +22231,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the index of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22256,7 +22256,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22275,7 +22275,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22295,7 +22295,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL4.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.OpenGL4.ProgramProperty props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22315,7 +22315,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22335,7 +22335,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22354,7 +22354,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: bufSize]</param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty[] props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22374,7 +22374,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL4.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] ref OpenTK.Graphics.OpenGL4.ProgramProperty props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Retrieve values for multiple properties of a single active resource within a program object
@@ -22394,7 +22394,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL4.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] OpenTK.Graphics.OpenGL4.ProgramProperty* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the location of a named resource within a program
@@ -22405,12 +22405,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the location of a named resource within a program
@@ -22421,12 +22421,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the fragment color index of a named variable within a program
@@ -22437,12 +22437,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocationIndex(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocationIndex(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the fragment color index of a named variable within a program
@@ -22453,12 +22453,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="programInterface">
         /// A token identifying the interface within program containing the resource named name.
         /// </param>
-        /// <param name="name">[length: name]
+        /// <param name="name">[length: COMPSIZE(name)]
         /// The name of the resource to query the location of.
         /// </param>
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetProgramResourceLocationIndex(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, String name) { throw new NotImplementedException(); }
+        public static Int32 GetProgramResourceLocationIndex(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, [CountAttribute(Computed = "name")] String name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22484,7 +22484,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22510,7 +22510,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22536,7 +22536,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22562,7 +22562,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22588,7 +22588,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_program_interface_query|VERSION_4_3]
         /// Query the name of an indexed resource within a program
@@ -22614,7 +22614,7 @@ namespace OpenTK.Graphics.OpenGL4
         [Obsolete("Use out overload instead")]
         [AutoGenerated(Category = "ARB_program_interface_query|VERSION_4_3", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL4.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -22633,7 +22633,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -22652,7 +22652,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -22671,7 +22671,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve properties of a program object corresponding to a specified shader stage
@@ -22690,7 +22690,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetProgramStageiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ProgramStageParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22704,12 +22704,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22723,12 +22723,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22742,12 +22742,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22761,12 +22761,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22780,12 +22780,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_transform_feedback3|VERSION_4_0]
         /// Return parameters of an indexed query object target
@@ -22799,12 +22799,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "ARB_transform_feedback3|VERSION_4_0", Version = "4.0", EntryPoint = "glGetQueryIndexediv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL4.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -22815,12 +22815,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -22831,12 +22831,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object target
@@ -22847,12 +22847,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object target parameter. Accepted values are CurrentQuery or QueryCounterBits.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQuery(OpenTK.Graphics.OpenGL4.QueryTarget target, OpenTK.Graphics.OpenGL4.GetQueryParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22863,12 +22863,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22879,12 +22879,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22895,12 +22895,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22911,12 +22911,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22927,12 +22927,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out Int64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -22943,12 +22943,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjecti64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -22959,12 +22959,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -22975,12 +22975,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -22991,12 +22991,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23007,12 +23007,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23023,12 +23023,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23039,12 +23039,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -23055,12 +23055,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] UInt64[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -23071,12 +23071,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out UInt64 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt64 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Return parameters of a query object
@@ -23087,12 +23087,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "ARB_timer_query|VERSION_3_3", Version = "3.3", EntryPoint = "glGetQueryObjectui64v")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] UInt64* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23103,12 +23103,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23119,12 +23119,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]
         /// Return parameters of a query object
@@ -23135,12 +23135,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a query object parameter. Accepted values are QueryResult or QueryResultAvailable.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// If a buffer is bound to the QueryResultBuffer target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to QueryResultBuffer, then params is treated as an address in client memory of a variable to receive the resulting data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL4.GetQueryObjectParam pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -23151,12 +23151,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -23167,12 +23167,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0 or ARB_framebuffer_object|VERSION_3_0]
         /// Retrieve information about a bound renderbuffer object
@@ -23183,12 +23183,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Specifies the address of an array to receive the value of the queried parameter.
         /// </param>
         [AutoGenerated(Category = "ARB_framebuffer_object|VERSION_3_0", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL4.RenderbufferTarget target, OpenTK.Graphics.OpenGL4.RenderbufferParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23199,12 +23199,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23215,12 +23215,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23231,12 +23231,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23247,12 +23247,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23263,12 +23263,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23279,84 +23279,84 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.All pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23367,12 +23367,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23383,12 +23383,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23399,12 +23399,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23415,12 +23415,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23431,12 +23431,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Return sampler parameter values
@@ -23447,12 +23447,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. TextureMagFilter, TextureMinFilter, TextureMinLod, TextureMaxLod, TextureLodBias, TextureWrapS, TextureWrapT, TextureWrapR, TextureBorderColor, TextureCompareMode, and TextureCompareFunc are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the sampler parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glGetSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get separable convolution filter kernel images
@@ -23466,17 +23466,17 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
-        public static void GetSeparableFilter(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span) { throw new NotImplementedException(); }
+        public static void GetSeparableFilter(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Get separable convolution filter kernel images
@@ -23490,18 +23490,18 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[] row, [InAttribute, OutAttribute] T4[] column, [InAttribute, OutAttribute] T5[] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -23519,18 +23519,18 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,] row, [InAttribute, OutAttribute] T4[,] column, [InAttribute, OutAttribute] T5[,] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -23548,18 +23548,18 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
         [CLSCompliant(false)]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T3[,,] row, [InAttribute, OutAttribute] T4[,,] column, [InAttribute, OutAttribute] T5[,,] span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T3[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T4[,,] column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] T5[,,] span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -23577,17 +23577,17 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Data type of components in the output images. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type]
+        /// <param name="row">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the row filter image.
         /// </param>
-        /// <param name="column">[length: target,format,type]
+        /// <param name="column">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the column filter image.
         /// </param>
-        /// <param name="span">[length: target,format,type]
+        /// <param name="span">[length: COMPSIZE(target,format,type)]
         /// Pointer to storage for the span filter image (currently unused).
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glGetSeparableFilter")]
-        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T3 row, [InAttribute, OutAttribute] ref T4 column, [InAttribute, OutAttribute] ref T5 span)
+        public static void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T3 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T4 column, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type")] ref T5 span)
             where T3 : struct
             where T4 : struct
             where T5 : struct
@@ -23610,7 +23610,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -23629,7 +23629,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -23648,7 +23648,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the information log for a shader object
@@ -23667,7 +23667,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder infoLog) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23678,12 +23678,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23694,12 +23694,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23710,12 +23710,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(Int32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23726,12 +23726,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23742,12 +23742,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns a parameter from a shader object
@@ -23758,12 +23758,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the object parameter. Accepted symbolic names are ShaderType, DeleteStatus, CompileStatus, InfoLogLength, ShaderSourceLength.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested object parameter.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL4.ShaderParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -23782,7 +23782,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32[] range, [OutAttribute, CountAttribute(Count = 2)] Int32[] precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -23801,7 +23801,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision) { throw new NotImplementedException(); }
+        public static void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] out Int32 range, [OutAttribute, CountAttribute(Count = 2)] out Int32 precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Retrieve the range and precision for numeric formats supported by the shader compiler
@@ -23820,7 +23820,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL4.ShaderType shadertype, OpenTK.Graphics.OpenGL4.ShaderPrecision precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -23839,7 +23839,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -23858,7 +23858,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -23877,7 +23877,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the source code string from a shader object
@@ -23896,7 +23896,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source) { throw new NotImplementedException(); }
+        public static unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder source) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a string describing the current GL connection
@@ -24017,7 +24017,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] Int32[] values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -24039,7 +24039,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values) { throw new NotImplementedException(); }
+        public static void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] out Int32 values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Query the properties of a sync object
@@ -24061,7 +24061,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_sync|VERSION_3_2", Version = "3.2", EntryPoint = "glGetSynciv")]
         [CLSCompliant(false)]
-        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values) { throw new NotImplementedException(); }
+        public static unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL4.SyncParameterName pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a texture image
@@ -24078,11 +24078,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
-        public static void GetTexImage(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void GetTexImage(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return a texture image
@@ -24099,12 +24099,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -24123,12 +24123,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -24147,12 +24147,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
         [CLSCompliant(false)]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T4[,,] pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] T4[,,] pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -24171,11 +24171,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies a pixel type for the returned data. The supported types are UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, and Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: target,level,format,type]
+        /// <param name="pixels">[length: COMPSIZE(target,level,format,type)]
         /// Returns the texture image. Should be a pointer to an array of the type specified by type.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
-        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T4 pixels)
+        public static void GetTexImage<T4>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,level,format,type")] ref T4 pixels)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -24191,12 +24191,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -24210,12 +24210,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -24229,12 +24229,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -24248,12 +24248,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -24267,12 +24267,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values for a specific level of detail
@@ -24286,12 +24286,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. TextureWidth, TextureHeight, TextureDepth, TextureInternalFormat, TextureRedSize, TextureGreenSize, TextureBlueSize, TextureAlphaSize, TextureDepthSize, TextureCompressed, TextureCompressedImageSize, and TextureBufferOffset are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the requested data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24302,12 +24302,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24318,12 +24318,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24334,60 +24334,60 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24398,12 +24398,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24414,12 +24414,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Return texture parameter values
@@ -24430,12 +24430,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a texture parameter. DepthStencilTextureMode, TextureBaseLevel, TextureBorderColor, TextureCompareMode, TextureCompareFunc, TextureImmutableFormat, TextureImmutableLevels, TextureLodBias, TextureMagFilter, TextureMaxLevel, TextureMaxLod, TextureMinFilter, TextureMinLod, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureSwizzleRgba, TextureViewMinLayer, TextureViewMinLevel, TextureViewNumLayers, TextureViewNumLevels, TextureWrapS, TextureWrapT, and TextureWrapR are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// Returns the texture parameters.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetTexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.GetTextureParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="texture"></param>
@@ -25207,7 +25207,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -25235,7 +25235,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -25263,7 +25263,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL4.TransformFeedbackType type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Count = 1)] out Int32 size, [OutAttribute, CountAttribute(Count = 1)] out OpenTK.Graphics.OpenGL4.TransformFeedbackType type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Retrieve information about varying variables selected for transform feedback
@@ -25291,7 +25291,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
         [CLSCompliant(false)]
-        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL4.TransformFeedbackType* type, [OutAttribute] StringBuilder name) { throw new NotImplementedException(); }
+        public static unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] OpenTK.Graphics.OpenGL4.TransformFeedbackType* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder name) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25299,12 +25299,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(Int32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(Int32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25312,12 +25312,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="program">
         /// Specifies the name of a program containing the uniform block.
         /// </param>
-        /// <param name="uniformBlockName">
+        /// <param name="uniformBlockName">[length: COMPSIZE()]
         /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformBlockIndex")]
         [CLSCompliant(false)]
-        public static Int32 GetUniformBlockIndex(UInt32 program, String uniformBlockName) { throw new NotImplementedException(); }
+        public static Int32 GetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] String uniformBlockName) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25328,12 +25328,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25344,12 +25344,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25360,12 +25360,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25376,12 +25376,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25392,12 +25392,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Returns the value of a uniform variable
@@ -25408,12 +25408,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25424,12 +25424,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25440,12 +25440,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25456,12 +25456,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25472,12 +25472,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25488,12 +25488,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25504,12 +25504,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25520,15 +25520,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25539,15 +25539,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out Int32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out Int32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25558,15 +25558,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] Int32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25577,15 +25577,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32[] uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32[] uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25596,15 +25596,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] out UInt32 uniformIndices) { throw new NotImplementedException(); }
+        public static void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] out UInt32 uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Retrieve the index of a named uniform block
@@ -25615,15 +25615,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="uniformCount">
         /// Specifies the number of uniforms whose indices to query.
         /// </param>
-        /// <param name="uniformNames">[length: uniformCount]
+        /// <param name="uniformNames">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
         /// </param>
-        /// <param name="uniformIndices">[length: uniformCount]
+        /// <param name="uniformIndices">[length: COMPSIZE(uniformCount)]
         /// Specifies the address of an array that will receive the indices of the uniforms.
         /// </param>
         [AutoGenerated(Category = "ARB_uniform_buffer_object|VERSION_3_1", Version = "3.1", EntryPoint = "glGetUniformIndices")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32* uniformIndices) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] String[] uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25634,12 +25634,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25650,12 +25650,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25666,12 +25666,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25682,12 +25682,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25698,12 +25698,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the value of a uniform variable
@@ -25714,12 +25714,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Returns the location of a uniform variable
@@ -25761,7 +25761,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -25777,7 +25777,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -25793,7 +25793,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
@@ -25809,7 +25809,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glGetUniformSubroutineuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -25820,12 +25820,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32[] @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -25836,12 +25836,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Returns the value of a uniform variable
@@ -25852,12 +25852,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="location">
         /// Specifies the location of the uniform variable to be queried.
         /// </param>
-        /// <param name="@params">[length: program,location]
+        /// <param name="@params">[length: COMPSIZE(program,location)]
         /// Returns the value of the specified uniform variable.
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="vaobj"></param>
@@ -26029,7 +26029,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26045,7 +26045,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26061,7 +26061,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26077,7 +26077,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26093,7 +26093,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26109,7 +26109,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26125,7 +26125,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26141,7 +26141,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26157,7 +26157,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26173,7 +26173,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Single[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26189,7 +26189,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Single @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Single @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26205,7 +26205,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26213,7 +26213,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26221,7 +26221,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26229,7 +26229,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26237,7 +26237,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26245,7 +26245,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out UInt32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] out UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -26253,7 +26253,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="@params">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26269,7 +26269,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26285,7 +26285,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26301,7 +26301,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26317,7 +26317,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26333,7 +26333,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Int32 @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] out Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return a generic vertex attribute parameter
@@ -26349,55 +26349,55 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double[] @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] out Double @params) { throw new NotImplementedException(); }
+        public static void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] out Double @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
         [CLSCompliant(false)]
-        public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute] Double* @params) { throw new NotImplementedException(); }
+        public static unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribParameter pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -26413,7 +26413,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -26429,7 +26429,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26447,7 +26447,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26465,7 +26465,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26483,7 +26483,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26501,7 +26501,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer) { throw new NotImplementedException(); }
+        public static void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Return the address of the specified generic vertex attribute pointer
@@ -26517,7 +26517,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26535,7 +26535,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26553,7 +26553,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] T2[,,] pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] T2[,,] pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26571,7 +26571,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
         [CLSCompliant(false)]
-        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] ref T2 pointer)
+        public static void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL4.VertexAttribPointerParameter pname, [InAttribute, OutAttribute, CountAttribute(Count = 1)] ref T2 pointer)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -26703,7 +26703,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL4.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL4.FramebufferAttachment[] attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content some or all of a framebuffer object's attachments
@@ -26719,7 +26719,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL4.FramebufferAttachment attachments) { throw new NotImplementedException(); }
+        public static void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.OpenGL4.FramebufferAttachment attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content some or all of a framebuffer object's attachments
@@ -26735,7 +26735,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL4.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL4.FramebufferAttachment* attachments) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="framebuffer"></param>
@@ -26883,7 +26883,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL4.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL4.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content of a region of some or all of a framebuffer object's attachments
@@ -26911,7 +26911,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL4.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] ref OpenTK.Graphics.OpenGL4.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the content of a region of some or all of a framebuffer object's attachments
@@ -26939,7 +26939,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_invalidate_subdata|VERSION_4_3", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
         [CLSCompliant(false)]
-        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL4.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
+        public static unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL4.FramebufferTarget target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] OpenTK.Graphics.OpenGL4.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_invalidate_subdata|VERSION_4_3]
         /// Invalidate the entirety a texture image
@@ -27455,10 +27455,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -27466,7 +27466,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] first, Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "count")] Int32[] first, [CountAttribute(Computed = "drawcount")] Int32[] count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -27474,10 +27474,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -27485,7 +27485,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "count")] ref Int32 first, [CountAttribute(Computed = "drawcount")] ref Int32 count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives from array data
@@ -27493,10 +27493,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="first">[length: count]
+        /// <param name="first">[length: COMPSIZE(count)]
         /// Points to an array of starting indices in the enabled arrays.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the number of indices to be rendered.
         /// </param>
         /// <param name="drawcount">
@@ -27504,7 +27504,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* first, Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "count")] Int32* first, [CountAttribute(Computed = "drawcount")] Int32* count, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render multiple sets of primitives from array data, taking parameters from memory
@@ -27512,7 +27512,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -27522,7 +27522,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
-        public static void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL4.PrimitiveType mode, IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
+        public static void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render multiple sets of primitives from array data, taking parameters from memory
@@ -27530,7 +27530,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -27541,7 +27541,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute] T1[] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -27551,7 +27551,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -27562,7 +27562,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute] T1[,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[,] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -27572,7 +27572,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -27583,7 +27583,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute] T1[,,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T1[,,] indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -27593,7 +27593,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency, and Patches are accepted.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of an array of structures containing the draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -27603,7 +27603,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
-        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute] ref T1 indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] ref T1 indirect, Int32 drawcount, Int32 stride)
             where T1 : struct
          { throw new NotImplementedException(); }
 
@@ -27613,13 +27613,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27627,7 +27627,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27635,13 +27635,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27649,7 +27649,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27659,13 +27659,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27673,7 +27673,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27683,13 +27683,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27697,7 +27697,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27707,13 +27707,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27721,7 +27721,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27731,13 +27731,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27745,7 +27745,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27753,13 +27753,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27767,7 +27767,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27777,13 +27777,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27791,7 +27791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27801,13 +27801,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27815,7 +27815,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27825,13 +27825,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27839,7 +27839,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27849,13 +27849,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27863,7 +27863,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Render multiple sets of primitives by specifying indices of array data elements
@@ -27871,13 +27871,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27885,7 +27885,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27895,13 +27895,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27909,7 +27909,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27919,13 +27919,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27933,7 +27933,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27943,13 +27943,13 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
@@ -27957,7 +27957,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
+        public static unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -27967,24 +27967,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32[] basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -27992,24 +27992,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28019,24 +28019,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28046,24 +28046,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28073,24 +28073,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32[] basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32[] count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32[] basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28100,24 +28100,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount, ref Int32 basevertex) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -28125,24 +28125,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28152,24 +28152,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28179,24 +28179,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28206,24 +28206,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, ref Int32 basevertex)
+        public static void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] ref Int32 count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] ref Int32 basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28233,24 +28233,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32* basevertex) { throw new NotImplementedException(); }
+        public static unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_draw_elements_base_vertex|VERSION_3_2]
         /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
@@ -28258,24 +28258,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28285,24 +28285,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28312,24 +28312,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] T3[,,] indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28339,24 +28339,24 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="mode">
         /// Specifies what kind of primitives to render. Symbolic constants Points, LineStrip, LineLoop, Lines, LineStripAdjacency, LinesAdjacency, TriangleStrip, TriangleFan, Triangles, TriangleStripAdjacency, TrianglesAdjacency and Patches are accepted.
         /// </param>
-        /// <param name="count">[length: drawcount]
+        /// <param name="count">[length: COMPSIZE(drawcount)]
         /// Points to an array of the elements counts.
         /// </param>
         /// <param name="type">
         /// Specifies the type of the values in indices. Must be one of UnsignedByte, UnsignedShort, or UnsignedInt.
         /// </param>
-        /// <param name="indices">[length: drawcount]
+        /// <param name="indices">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the indices are stored.
         /// </param>
         /// <param name="drawcount">
         /// Specifies the size of the count, indices and basevertex arrays.
         /// </param>
-        /// <param name="basevertex">[length: drawcount]
+        /// <param name="basevertex">[length: COMPSIZE(drawcount)]
         /// Specifies a pointer to the location where the base vertices are stored.
         /// </param>
         [AutoGenerated(Category = "ARB_draw_elements_base_vertex|VERSION_3_2", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
         [CLSCompliant(false)]
-        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32* basevertex)
+        public static unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, [CountAttribute(Computed = "drawcount")] Int32* count, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount")] ref T3 indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -28369,7 +28369,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -28379,7 +28379,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
-        public static void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
+        public static void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_multi_draw_indirect|VERSION_4_3]
         /// Render indexed primitives from array data, taking parameters from memory
@@ -28390,7 +28390,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -28401,7 +28401,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T2[] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -28414,7 +28414,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -28425,7 +28425,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T2[,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[,] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -28438,7 +28438,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -28449,7 +28449,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
         [CLSCompliant(false)]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] T2[,,] indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] T2[,,] indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -28462,7 +28462,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the type of data in the buffer bound to the ElementArrayBuffer binding.
         /// </param>
-        /// <param name="indirect">[length: drawcount,stride]
+        /// <param name="indirect">[length: COMPSIZE(drawcount,stride)]
         /// Specifies the address of a structure containing an array of draw parameters.
         /// </param>
         /// <param name="drawcount">
@@ -28472,7 +28472,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// Specifies the distance in basic machine units between elements of the draw parameter array.
         /// </param>
         [AutoGenerated(Category = "ARB_multi_draw_indirect|VERSION_4_3", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
-        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute] ref T2 indirect, Int32 drawcount, Int32 stride)
+        public static void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL4.PrimitiveType mode, OpenTK.Graphics.OpenGL4.DrawElementsType type, [InAttribute, OutAttribute, CountAttribute(Computed = "drawcount,stride")] ref T2 indirect, Int32 drawcount, Int32 stride)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -28498,7 +28498,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28506,7 +28506,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28530,7 +28530,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28538,7 +28538,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28562,7 +28562,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28570,7 +28570,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28594,7 +28594,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="texture"></param>
@@ -28602,7 +28602,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glMultiTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL4.TextureUnit texture, OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.5 or ARB_direct_state_access|VERSION_4_5]</summary>
         /// <param name="buffer"></param>
@@ -29127,14 +29127,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glNormalP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glNormalP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void NormalP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a named object identified within a namespace
@@ -29148,12 +29148,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, Int32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a named object identified within a namespace
@@ -29167,12 +29167,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectLabel")]
         [CLSCompliant(false)]
-        public static void ObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectLabel(OpenTK.Graphics.OpenGL4.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a a sync object identified by a pointer
@@ -29183,11 +29183,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, String label) { throw new NotImplementedException(); }
+        public static void ObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Label a a sync object identified by a pointer
@@ -29198,12 +29198,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -29216,12 +29216,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -29234,12 +29234,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
         [CLSCompliant(false)]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -29252,11 +29252,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the label to be used for the object.
         /// </param>
-        /// <param name="label">[length: label,length]
+        /// <param name="label">[length: COMPSIZE(label,length)]
         /// The address of a string containing the label to assign to the object.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
-        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
+        public static void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, [CountAttribute(Computed = "label,length")] String label)
             where T0 : struct
          { throw new NotImplementedException(); }
 
@@ -29266,12 +29266,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, Single[] values) { throw new NotImplementedException(); }
+        public static void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] Single[] values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -29279,12 +29279,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, ref Single values) { throw new NotImplementedException(); }
+        public static void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] ref Single values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -29292,12 +29292,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the name of the parameter to set. The symbolc constants PatchVertices, PatchDefaultOuterLevel, and PatchDefaultInnerLevel are accepted.
         /// </param>
-        /// <param name="values">[length: pname]
+        /// <param name="values">[length: COMPSIZE(pname)]
         /// Specifies the address of an array containing the new values for the parameter given by pname.
         /// </param>
         [AutoGenerated(Category = "ARB_tessellation_shader|VERSION_4_0", Version = "4.0", EntryPoint = "glPatchParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, Single* values) { throw new NotImplementedException(); }
+        public static unsafe void PatchParameter(OpenTK.Graphics.OpenGL4.PatchParameterFloat pname, [CountAttribute(Computed = "pname")] Single* values) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_tessellation_shader|VERSION_4_0]
         /// Specifies the parameters for patch primitives
@@ -29359,12 +29359,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -29372,12 +29372,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -29397,12 +29397,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
         [CLSCompliant(false)]
-        public static void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.4]
         /// Specify point parameters
@@ -29410,12 +29410,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies a single-valued point parameter. PointFadeThresholdSize, and PointSpriteCoordOrigin are accepted.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For glPointParameterf and glPointParameteri, specifies the value that pname will be set to.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void PointParameter(OpenTK.Graphics.OpenGL4.PointParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify the diameter of rasterized points
@@ -29493,7 +29493,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Load a program object with a program binary
@@ -29512,7 +29512,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29533,7 +29533,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29554,7 +29554,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29575,7 +29575,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29596,7 +29596,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ProgramBinary(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_get_program_binary|VERSION_4_1]
         /// Load a program object with a program binary
@@ -29615,7 +29615,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29636,7 +29636,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29657,7 +29657,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T2[,,] binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29678,7 +29678,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_get_program_binary|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramBinary")]
         [CLSCompliant(false)]
-        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
+        public static void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL4.BinaryFormat binaryFormat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T2 binary, Int32 length)
             where T2 : struct
          { throw new NotImplementedException(); }
 
@@ -29763,7 +29763,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29782,7 +29782,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29801,7 +29801,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29820,7 +29820,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29871,7 +29871,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29890,7 +29890,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29909,7 +29909,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29928,7 +29928,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29979,7 +29979,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -29998,7 +29998,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30017,7 +30017,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30036,7 +30036,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30071,7 +30071,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30090,7 +30090,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30147,7 +30147,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30166,7 +30166,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30185,7 +30185,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30204,7 +30204,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30223,7 +30223,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30242,7 +30242,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30299,7 +30299,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30318,7 +30318,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30337,7 +30337,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30356,7 +30356,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30375,7 +30375,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30394,7 +30394,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30451,7 +30451,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30470,7 +30470,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30489,7 +30489,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30508,7 +30508,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30546,7 +30546,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30565,7 +30565,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30584,7 +30584,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30647,7 +30647,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30666,7 +30666,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30685,7 +30685,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30704,7 +30704,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30723,7 +30723,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30742,7 +30742,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30805,7 +30805,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30824,7 +30824,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30843,7 +30843,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30862,7 +30862,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30881,7 +30881,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30900,7 +30900,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30963,7 +30963,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -30982,7 +30982,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31001,7 +31001,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31020,7 +31020,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31039,7 +31039,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31058,7 +31058,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31099,7 +31099,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31118,7 +31118,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31137,7 +31137,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31206,7 +31206,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31225,7 +31225,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31244,7 +31244,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31263,7 +31263,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31282,7 +31282,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31301,7 +31301,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31370,7 +31370,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31389,7 +31389,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31408,7 +31408,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31427,7 +31427,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31446,7 +31446,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31465,7 +31465,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31534,7 +31534,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31553,7 +31553,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31572,7 +31572,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31591,7 +31591,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31610,7 +31610,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31629,7 +31629,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31673,7 +31673,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31692,7 +31692,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]
         /// Specify the value of a uniform variable for a specified program object
@@ -31711,7 +31711,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31721,7 +31721,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31731,7 +31731,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31741,7 +31741,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31751,7 +31751,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31761,7 +31761,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31771,7 +31771,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31781,7 +31781,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31791,7 +31791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31801,7 +31801,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31811,7 +31811,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31821,7 +31821,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31831,7 +31831,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 2]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31841,7 +31841,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31851,7 +31851,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31861,7 +31861,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31871,7 +31871,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31881,7 +31881,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31891,7 +31891,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31901,7 +31901,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31911,7 +31911,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31921,7 +31921,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31931,7 +31931,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31941,7 +31941,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31951,7 +31951,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31961,7 +31961,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31971,7 +31971,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31981,7 +31981,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -31991,7 +31991,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32001,7 +32001,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32011,7 +32011,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32021,7 +32021,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32031,7 +32031,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32041,7 +32041,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32051,7 +32051,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32061,7 +32061,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32071,7 +32071,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32081,7 +32081,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32091,7 +32091,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32101,7 +32101,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32111,7 +32111,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32121,7 +32121,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32131,7 +32131,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32141,7 +32141,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32151,7 +32151,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32161,7 +32161,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32171,7 +32171,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32181,7 +32181,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32191,7 +32191,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 3]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32201,7 +32201,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32211,7 +32211,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32221,7 +32221,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32231,7 +32231,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32241,7 +32241,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32251,7 +32251,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32261,7 +32261,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32271,7 +32271,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32281,7 +32281,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32291,7 +32291,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32301,7 +32301,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32311,7 +32311,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32321,7 +32321,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32331,7 +32331,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32341,7 +32341,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32351,7 +32351,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32361,7 +32361,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32371,7 +32371,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32381,7 +32381,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32391,7 +32391,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32401,7 +32401,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32411,7 +32411,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32421,7 +32421,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32431,7 +32431,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32441,7 +32441,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32451,7 +32451,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32461,7 +32461,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32471,7 +32471,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32481,7 +32481,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32491,7 +32491,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32501,7 +32501,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32511,7 +32511,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32521,7 +32521,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32531,7 +32531,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32541,7 +32541,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32551,7 +32551,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 4]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32561,7 +32561,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32571,7 +32571,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32581,7 +32581,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32591,7 +32591,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32601,7 +32601,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32611,7 +32611,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32621,7 +32621,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32631,7 +32631,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32641,7 +32641,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32651,7 +32651,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32661,7 +32661,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32671,7 +32671,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32681,7 +32681,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32691,7 +32691,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32701,7 +32701,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32711,7 +32711,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32721,7 +32721,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32731,7 +32731,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32741,7 +32741,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32751,7 +32751,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32761,7 +32761,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32771,7 +32771,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32781,7 +32781,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_separate_shader_objects|VERSION_4_1]</summary>
         /// <param name="program"></param>
@@ -32791,7 +32791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count]</param>
         [AutoGenerated(Category = "ARB_separate_shader_objects|VERSION_4_1", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_provoking_vertex|VERSION_3_2]
         /// Specifiy the vertex to be used as the source of data for flat shaded varyings
@@ -32814,12 +32814,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, Int32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, Int32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or KHR_debug|VERSION_4_3]
         /// Push a named debug group into the command stream
@@ -32833,12 +32833,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="length">
         /// The length of the message to be sent to the debug output stream.
         /// </param>
-        /// <param name="message">[length: message,length]
+        /// <param name="message">[length: COMPSIZE(message,length)]
         /// The a string containing the message to be sent to the debug output stream.
         /// </param>
         [AutoGenerated(Category = "KHR_debug|VERSION_4_3", Version = "4.3", EntryPoint = "glPushDebugGroup")]
         [CLSCompliant(false)]
-        public static void PushDebugGroup(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, UInt32 id, Int32 length, String message) { throw new NotImplementedException(); }
+        public static void PushDebugGroup(OpenTK.Graphics.OpenGL4.DebugSourceExternal source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] String message) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_timer_query|VERSION_3_3]
         /// Record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.
@@ -32967,11 +32967,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute] IntPtr pixels) { throw new NotImplementedException(); }
+        public static void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Read a block of pixels from the frame buffer
@@ -32994,12 +32994,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -33024,12 +33024,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -33054,12 +33054,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
         [CLSCompliant(false)]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -33084,11 +33084,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. Must be one of UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, HalfFloat, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, UnsignedInt2101010Rev, UnsignedInt248, UnsignedInt10F11F11FRev, UnsignedInt5999Rev, or Float32UnsignedInt248Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Returns the pixel data.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
-        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -33240,12 +33240,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33256,12 +33256,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33272,12 +33272,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Single[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33288,12 +33288,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Single* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Single* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33330,74 +33330,74 @@ namespace OpenTK.Graphics.OpenGL4
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, ref Int32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, UInt32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, ref UInt32 param) { throw new NotImplementedException(); }
+        public static void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]</summary>
         /// <param name="sampler"></param>
         /// <param name="pname"></param>
-        /// <param name="param">[length: pname]</param>
+        /// <param name="param">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, UInt32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] UInt32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33408,12 +33408,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33424,12 +33424,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33440,12 +33440,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32[] param) { throw new NotImplementedException(); }
+        public static void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32[] param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_sampler_objects|VERSION_3_3]
         /// Set sampler parameters
@@ -33456,12 +33456,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a sampler parameter. pname can be one of the following: TextureWrapS, TextureWrapT, TextureWrapR, TextureMinFilter, TextureMagFilter, TextureBorderColor, TextureMinLod, TextureMaxLod, TextureLodBiasTextureCompareMode, or TextureCompareFunc.
         /// </param>
-        /// <param name="param">[length: pname]
+        /// <param name="param">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "ARB_sampler_objects|VERSION_3_3", Version = "3.3", EntryPoint = "glSamplerParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, Int32* param) { throw new NotImplementedException(); }
+        public static unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL4.SamplerParameterName pname, [CountAttribute(Computed = "pname")] Int32* param) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Define the scissor box
@@ -33490,12 +33490,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(Int32 first, Int32 count, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -33506,12 +33506,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(Int32 first, Int32 count, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -33522,12 +33522,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorArray(Int32 first, Int32 count, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -33538,12 +33538,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(UInt32 first, Int32 count, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -33554,12 +33554,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static void ScissorArray(UInt32 first, Int32 count, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for multiple viewports
@@ -33570,12 +33570,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specifies the number of scissor boxes to modify.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorArray(UInt32 first, Int32 count, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33632,7 +33632,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33645,7 +33645,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33658,7 +33658,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorIndexed(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorIndexed(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33671,7 +33671,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33684,7 +33684,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static void ScissorIndexed(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Define the scissor box for a specific viewport
@@ -33697,7 +33697,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glScissorIndexedv")]
         [CLSCompliant(false)]
-        public static unsafe void ScissorIndexed(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void ScissorIndexed(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -33718,14 +33718,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glSecondaryColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* color) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* color) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="color">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glSecondaryColorP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* color) { throw new NotImplementedException(); }
+        public static unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* color) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a separable two-dimensional convolution filter
@@ -33748,14 +33748,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
-        public static void SeparableFilter2D(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr row, IntPtr column) { throw new NotImplementedException(); }
+        public static void SeparableFilter2D(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column) { throw new NotImplementedException(); }
 
         /// <summary>
         /// Define a separable two-dimensional convolution filter
@@ -33778,15 +33778,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[] row, [InAttribute, OutAttribute] T7[] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -33812,15 +33812,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,] row, [InAttribute, OutAttribute] T7[,] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -33846,15 +33846,15 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
         [CLSCompliant(false)]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,,] row, [InAttribute, OutAttribute] T7[,,] column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] T6[,,] row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] T7[,,] column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -33880,14 +33880,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// The type of the pixel data in row and column. Symbolic constants UnsignedByte, Byte, Bitmap, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev are accepted.
         /// </param>
-        /// <param name="row">[length: target,format,type,width]
+        /// <param name="row">[length: COMPSIZE(target,format,type,width)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the row filter kernel.
         /// </param>
-        /// <param name="column">[length: target,format,type,height]
+        /// <param name="column">[length: COMPSIZE(target,format,type,height)]
         /// Pointer to a one-dimensional array of pixel data that is processed to build the column filter kernel.
         /// </param>
         [AutoGenerated(Category = "ARB_imaging", Version = "", EntryPoint = "glSeparableFilter2D")]
-        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T6 row, [InAttribute, OutAttribute] ref T7 column)
+        public static void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL4.SeparableTarget target, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,width")] ref T6 row, [InAttribute, OutAttribute, CountAttribute(Computed = "target,format,type,height")] ref T7 column)
             where T6 : struct
             where T7 : struct
          { throw new NotImplementedException(); }
@@ -33912,7 +33912,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -33934,7 +33934,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33958,7 +33958,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -33982,7 +33982,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34006,7 +34006,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34030,7 +34030,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -34052,7 +34052,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34076,7 +34076,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34100,7 +34100,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34124,7 +34124,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref Int32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34148,7 +34148,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -34170,7 +34170,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34194,7 +34194,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34218,7 +34218,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34242,7 +34242,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] Int32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34266,7 +34266,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -34288,7 +34288,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34312,7 +34312,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34336,7 +34336,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34360,7 +34360,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32[] shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34384,7 +34384,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -34406,7 +34406,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34430,7 +34430,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34454,7 +34454,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34478,7 +34478,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34502,7 +34502,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, IntPtr binary, Int32 length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_ES2_compatibility|VERSION_4_1]
         /// Load pre-compiled shader binaries
@@ -34524,7 +34524,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34548,7 +34548,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34572,7 +34572,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] T3[,,] binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34596,7 +34596,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_ES2_compatibility|VERSION_4_1", Version = "4.1", EntryPoint = "glShaderBinary")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
+        public static unsafe void ShaderBinary<T3>(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, OpenTK.Graphics.OpenGL4.BinaryFormat binaryformat, [InAttribute, OutAttribute, CountAttribute(Parameter = "length")] ref T3 binary, Int32 length)
             where T3 : struct
          { throw new NotImplementedException(); }
 
@@ -34617,7 +34617,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -34636,7 +34636,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(Int32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -34655,7 +34655,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(Int32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(Int32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -34674,7 +34674,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32[] length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32[] length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -34693,7 +34693,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static void ShaderSource(UInt32 shader, Int32 count, String[] @string, ref Int32 length) { throw new NotImplementedException(); }
+        public static void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] ref Int32 length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Replaces the source code in a shader object
@@ -34712,7 +34712,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
         [CLSCompliant(false)]
-        public static unsafe void ShaderSource(UInt32 shader, Int32 count, String[] @string, Int32* length) { throw new NotImplementedException(); }
+        public static unsafe void ShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] String[] @string, [CountAttribute(Parameter = "count")] Int32* length) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_shader_storage_buffer_object|VERSION_4_3]
         /// Change an active shader storage block binding
@@ -35034,14 +35034,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP1(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -35062,14 +35062,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -35090,14 +35090,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -35118,14 +35118,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="coords">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glTexCoordP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* coords) { throw new NotImplementedException(); }
+        public static unsafe void TexCoordP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* coords) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a one-dimensional texture image
@@ -35151,11 +35151,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
-        public static void TexImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a one-dimensional texture image
@@ -35181,12 +35181,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -35214,12 +35214,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -35247,12 +35247,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
         [CLSCompliant(false)]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T7[,,] pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -35280,11 +35280,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
-        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T7 pixels)
+        public static void TexImage1D<T7>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T7 pixels)
             where T7 : struct
          { throw new NotImplementedException(); }
 
@@ -35315,11 +35315,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Specify a two-dimensional texture image
@@ -35348,12 +35348,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -35384,12 +35384,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -35420,12 +35420,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
         [CLSCompliant(false)]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -35456,11 +35456,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
-        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -35518,11 +35518,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Specify a three-dimensional texture image
@@ -35554,12 +35554,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -35593,12 +35593,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -35632,12 +35632,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
         [CLSCompliant(false)]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T9[,,] pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -35671,11 +35671,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
-        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T9 pixels)
+        public static void TexImage3D<T9>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL4.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T9 pixels)
             where T9 : struct
          { throw new NotImplementedException(); }
 
@@ -35730,12 +35730,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Single[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -35746,12 +35746,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Single* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Single* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -35771,50 +35771,50 @@ namespace OpenTK.Graphics.OpenGL4
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, ref Int32 @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref Int32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, UInt32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, ref UInt32 @params) { throw new NotImplementedException(); }
+        public static void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] ref UInt32 @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="target"></param>
         /// <param name="pname"></param>
-        /// <param name="@params">[length: pname]</param>
+        /// <param name="@params">[length: COMPSIZE(pname)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, UInt32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameterI(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] UInt32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -35825,12 +35825,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Int32[] @params) { throw new NotImplementedException(); }
+        public static void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32[] @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set texture parameters
@@ -35841,12 +35841,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pname">
         /// Specifies the symbolic name of a single-valued texture parameter. pname can be one of the following: DepthStencilTextureMode, TextureBaseLevel, TextureCompareFunc, TextureCompareMode, TextureLodBias, TextureMinFilter, TextureMagFilter, TextureMinLod, TextureMaxLod, TextureMaxLevel, TextureSwizzleR, TextureSwizzleG, TextureSwizzleB, TextureSwizzleA, TextureWrapS, TextureWrapT, or TextureWrapR.  For the vector commands (glTexParameter*v), pname can also be one of TextureBorderColor or TextureSwizzleRgba.
         /// </param>
-        /// <param name="@params">[length: pname]
+        /// <param name="@params">[length: COMPSIZE(pname)]
         /// For the scalar commands, specifies the value of pname.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
         [CLSCompliant(false)]
-        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, Int32* @params) { throw new NotImplementedException(); }
+        public static unsafe void TexParameter(OpenTK.Graphics.OpenGL4.TextureTarget target, OpenTK.Graphics.OpenGL4.TextureParameterName pname, [CountAttribute(Computed = "pname")] Int32* @params) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.2 or ARB_texture_storage|VERSION_4_2]
         /// Simultaneously specify storage for all levels of a one-dimensional texture
@@ -35983,11 +35983,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
-        public static void TexSubImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage1D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Specify a one-dimensional texture subimage
@@ -36010,12 +36010,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -36040,12 +36040,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -36070,12 +36070,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
         [CLSCompliant(false)]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] T6[,,] pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -36100,11 +36100,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
-        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T6 pixels)
+        public static void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width")] ref T6 pixels)
             where T6 : struct
          { throw new NotImplementedException(); }
 
@@ -36135,11 +36135,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage2D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.1]
         /// Specify a two-dimensional texture subimage
@@ -36168,12 +36168,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -36204,12 +36204,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -36240,12 +36240,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
         [CLSCompliant(false)]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] T8[,,] pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -36276,11 +36276,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
-        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T8 pixels)
+        public static void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height")] ref T8 pixels)
             where T8 : struct
          { throw new NotImplementedException(); }
 
@@ -36317,11 +36317,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, IntPtr pixels) { throw new NotImplementedException(); }
+        public static void TexSubImage3D(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.2]
         /// Specify a three-dimensional texture subimage
@@ -36356,12 +36356,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -36398,12 +36398,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -36440,12 +36440,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
         [CLSCompliant(false)]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] T10[,,] pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -36482,11 +36482,11 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="type">
         /// Specifies the data type of the pixel data. The following symbolic values are accepted: UnsignedByte, Byte, UnsignedShort, Short, UnsignedInt, Int, Float, UnsignedByte332, UnsignedByte233Rev, UnsignedShort565, UnsignedShort565Rev, UnsignedShort4444, UnsignedShort4444Rev, UnsignedShort5551, UnsignedShort1555Rev, UnsignedInt8888, UnsignedInt8888Rev, UnsignedInt1010102, and UnsignedInt2101010Rev.
         /// </param>
-        /// <param name="pixels">[length: format,type,width,height,depth]
+        /// <param name="pixels">[length: COMPSIZE(format,type,width,height,depth)]
         /// Specifies a pointer to the image data in memory.
         /// </param>
         [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
-        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute] ref T10 pixels)
+        public static void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL4.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, [InAttribute, OutAttribute, CountAttribute(Computed = "format,type,width,height,depth")] ref T10 pixels)
             where T10 : struct
          { throw new NotImplementedException(); }
 
@@ -37387,7 +37387,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL4.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(Int32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL4.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify values to record in transform feedback buffers
@@ -37406,7 +37406,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
         [CLSCompliant(false)]
-        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL4.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
+        public static void TransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] String[] varyings, OpenTK.Graphics.OpenGL4.TransformFeedbackMode bufferMode) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37434,7 +37434,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37450,7 +37450,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37466,7 +37466,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform1dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37494,7 +37494,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37510,7 +37510,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37526,7 +37526,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37554,7 +37554,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37570,7 +37570,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37586,7 +37586,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform1iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37615,7 +37615,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37631,7 +37631,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static void Uniform1(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37647,7 +37647,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform1(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform1(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37678,7 +37678,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37694,7 +37694,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37710,7 +37710,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform2dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37741,7 +37741,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37757,7 +37757,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37773,7 +37773,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37804,7 +37804,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37820,7 +37820,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform2iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37852,7 +37852,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37868,7 +37868,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static void Uniform2(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37884,7 +37884,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform2(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform2(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37918,7 +37918,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37934,7 +37934,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -37950,7 +37950,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform3dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -37984,7 +37984,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38000,7 +38000,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38016,7 +38016,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38050,7 +38050,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38066,7 +38066,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38082,7 +38082,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform3iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38117,7 +38117,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38133,7 +38133,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static void Uniform3(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38149,7 +38149,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform3(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform3(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -38186,7 +38186,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Double[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -38202,7 +38202,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Double value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]
         /// Specify the value of a uniform variable for the current program object
@@ -38218,7 +38218,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniform4dv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38255,7 +38255,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Single[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38271,7 +38271,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Single value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38287,7 +38287,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4fv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38324,7 +38324,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, Int32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38340,7 +38340,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref Int32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref Int32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38356,7 +38356,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniform4iv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38394,7 +38394,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, UInt32[] value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38410,7 +38410,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static void Uniform4(Int32 location, Int32 count, ref UInt32 value) { throw new NotImplementedException(); }
+        public static void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] ref UInt32 value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]
         /// Specify the value of a uniform variable for the current program object
@@ -38426,7 +38426,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glUniform4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void Uniform4(Int32 location, Int32 count, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void Uniform4(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.1 or ARB_uniform_buffer_object|VERSION_3_1]
         /// Assign a binding point to an active uniform block
@@ -38467,7 +38467,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38476,7 +38476,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38485,7 +38485,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38494,7 +38494,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38503,7 +38503,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38512,7 +38512,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38521,7 +38521,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38530,7 +38530,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38539,7 +38539,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38548,7 +38548,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38557,7 +38557,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38566,7 +38566,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38575,7 +38575,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38584,7 +38584,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38593,7 +38593,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix2x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38602,7 +38602,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38611,7 +38611,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38620,7 +38620,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix2x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38629,7 +38629,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38638,7 +38638,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38647,7 +38647,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38656,7 +38656,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38665,7 +38665,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38674,7 +38674,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*9]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38683,7 +38683,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38692,7 +38692,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38701,7 +38701,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38710,7 +38710,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38719,7 +38719,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38728,7 +38728,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*6]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38737,7 +38737,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38746,7 +38746,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38755,7 +38755,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix3x4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38764,7 +38764,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38773,7 +38773,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38782,7 +38782,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix3x4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38791,7 +38791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38800,7 +38800,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38809,7 +38809,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38818,7 +38818,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38827,7 +38827,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="location"></param>
@@ -38836,7 +38836,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*16]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glUniformMatrix4fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38845,7 +38845,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38854,7 +38854,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38863,7 +38863,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x2dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38872,7 +38872,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38881,7 +38881,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38890,7 +38890,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*8]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x2fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38899,7 +38899,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38908,7 +38908,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Double value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Double value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_gpu_shader_fp64|VERSION_4_0]</summary>
         /// <param name="location"></param>
@@ -38917,7 +38917,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "ARB_gpu_shader_fp64|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformMatrix4x3dv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38926,7 +38926,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single[] value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single[] value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38935,7 +38935,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Single value) { throw new NotImplementedException(); }
+        public static void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] ref Single value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.1]</summary>
         /// <param name="location"></param>
@@ -38944,7 +38944,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: count*12]</param>
         [AutoGenerated(Category = "VERSION_2_1", Version = "2.1", EntryPoint = "glUniformMatrix4x3fv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Single* value) { throw new NotImplementedException(); }
+        public static unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -38960,7 +38960,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, Int32[] indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] Int32[] indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -38976,7 +38976,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, ref Int32 indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] ref Int32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -38992,7 +38992,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, Int32* indices) { throw new NotImplementedException(); }
+        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] Int32* indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -39008,7 +39008,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, UInt32[] indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32[] indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -39024,7 +39024,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, ref UInt32 indices) { throw new NotImplementedException(); }
+        public static void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] ref UInt32 indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.0 or ARB_shader_subroutine|VERSION_4_0]
         /// Load active subroutine uniforms
@@ -39040,7 +39040,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_shader_subroutine|VERSION_4_0", Version = "4.0", EntryPoint = "glUniformSubroutinesuiv")]
         [CLSCompliant(false)]
-        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, UInt32* indices) { throw new NotImplementedException(); }
+        public static unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL4.ShaderType shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32* indices) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.5]</summary>
         /// <param name="target"></param>
@@ -39382,7 +39382,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39395,7 +39395,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39434,7 +39434,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39447,7 +39447,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39486,7 +39486,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(Int32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39499,7 +39499,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib1sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib1(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib1(UInt32 index, [CountAttribute(Count = 1)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39544,7 +39544,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39557,7 +39557,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39570,7 +39570,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39583,7 +39583,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39596,7 +39596,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39609,7 +39609,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39654,7 +39654,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39667,7 +39667,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39680,7 +39680,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39693,7 +39693,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39706,7 +39706,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39719,7 +39719,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39764,7 +39764,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39777,7 +39777,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39790,7 +39790,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(Int32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39803,7 +39803,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39816,7 +39816,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib2(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39829,7 +39829,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib2sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib2(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib2(UInt32 index, [CountAttribute(Count = 2)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39880,7 +39880,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39893,7 +39893,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39906,7 +39906,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39919,7 +39919,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39932,7 +39932,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39945,7 +39945,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -39996,7 +39996,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40009,7 +40009,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40022,7 +40022,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40035,7 +40035,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40048,7 +40048,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40061,7 +40061,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40112,7 +40112,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40125,7 +40125,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40138,7 +40138,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(Int32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40151,7 +40151,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40164,7 +40164,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib3(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40177,7 +40177,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib3sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib3(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib3(UInt32 index, [CountAttribute(Count = 3)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40190,7 +40190,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40203,7 +40203,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40216,7 +40216,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4bv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40273,7 +40273,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40286,7 +40286,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40299,7 +40299,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40312,7 +40312,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40325,7 +40325,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40338,7 +40338,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40395,7 +40395,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40408,7 +40408,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40421,7 +40421,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40434,7 +40434,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40447,7 +40447,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40460,7 +40460,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4fv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40473,7 +40473,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40486,7 +40486,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40499,7 +40499,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40512,7 +40512,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40525,7 +40525,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40538,112 +40538,112 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nbv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Niv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nsv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
@@ -40670,84 +40670,84 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nuiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4N(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4Nusv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4N(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4N(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40804,7 +40804,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40817,7 +40817,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40830,7 +40830,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40843,7 +40843,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40856,7 +40856,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40869,7 +40869,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40882,7 +40882,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40895,7 +40895,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40908,7 +40908,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40921,7 +40921,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40934,7 +40934,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40947,7 +40947,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40960,7 +40960,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40973,7 +40973,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40986,7 +40986,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -40999,7 +40999,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -41012,7 +41012,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttrib4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Specifies the value of a generic vertex attribute
@@ -41025,7 +41025,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttrib4usv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttrib4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttrib4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]
         /// Associate a vertex attribute and a vertex buffer binding
@@ -41142,14 +41142,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(Int32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41163,7 +41163,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI1(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI1(UInt32 index, [CountAttribute(Count = 1)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41186,42 +41186,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(Int32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41236,21 +41236,21 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI2(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI2(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI2(UInt32 index, [CountAttribute(Count = 2)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41275,42 +41275,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(Int32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41326,42 +41326,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI3(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI3(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI3(UInt32 index, [CountAttribute(Count = 3)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, SByte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref SByte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref SByte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4bv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, SByte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] SByte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41388,126 +41388,126 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4iv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Int16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Int16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Int16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4sv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Int16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Int16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(Int32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(Int32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(Int32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, Byte[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref Byte v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref Byte v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4ubv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, Byte* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] Byte* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
@@ -41524,42 +41524,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt32[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt32 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt32 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt32* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt32* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, UInt16[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static void VertexAttribI4(UInt32 index, ref UInt16 v) { throw new NotImplementedException(); }
+        public static void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] ref UInt16 v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribI4usv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribI4(UInt32 index, UInt16* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribI4(UInt32 index, [CountAttribute(Count = 4)] UInt16* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]</summary>
         /// <param name="attribindex"></param>
@@ -41584,20 +41584,20 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41606,10 +41606,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41618,10 +41618,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41630,10 +41630,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41642,20 +41642,20 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.0]</summary>
         /// <param name="index"></param>
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41664,10 +41664,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41676,10 +41676,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41688,10 +41688,10 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="size"></param>
         /// <param name="type"></param>
         /// <param name="stride"></param>
-        /// <param name="pointer">[length: size,type,stride]</param>
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]</param>
         [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41714,14 +41714,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL1(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL1(Int32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL1(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL1(UInt32 index, [CountAttribute(Count = 1)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -41744,42 +41744,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL2(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL2(Int32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL2(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 2]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL2(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL2(UInt32 index, [CountAttribute(Count = 2)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -41804,42 +41804,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL3(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL3(Int32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL3(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 3]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL3(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL3(UInt32 index, [CountAttribute(Count = 3)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -41866,42 +41866,42 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(Int32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(Int32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL4(Int32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL4(Int32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(UInt32 index, Double[] v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static void VertexAttribL4(UInt32 index, ref Double v) { throw new NotImplementedException(); }
+        public static void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] ref Double v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
         /// <param name="v">[length: 4]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribL4(UInt32 index, Double* v) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribL4(UInt32 index, [CountAttribute(Count = 4)] Double* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.3 or ARB_vertex_attrib_binding|VERSION_4_3]</summary>
         /// <param name="attribindex"></param>
@@ -41929,7 +41929,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -41939,7 +41939,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41951,7 +41951,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41963,7 +41963,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41975,7 +41975,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -41987,7 +41987,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_vertex_attrib_64bit|VERSION_4_1]</summary>
         /// <param name="index"></param>
@@ -41997,7 +41997,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -42009,7 +42009,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -42021,7 +42021,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] T4[,,] pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -42033,7 +42033,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="pointer">[length: size]</param>
         [AutoGenerated(Category = "ARB_vertex_attrib_64bit|VERSION_4_1", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
+        public static void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Parameter = "size")] ref T4 pointer)
             where T4 : struct
          { throw new NotImplementedException(); }
 
@@ -42062,7 +42062,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42071,7 +42071,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42098,7 +42098,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42107,7 +42107,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42134,7 +42134,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42143,7 +42143,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42170,7 +42170,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="index"></param>
@@ -42179,7 +42179,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL4.PackedPointerType type, bool normalized, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -42199,12 +42199,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -42224,12 +42224,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42251,12 +42251,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42278,12 +42278,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42305,12 +42305,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42332,12 +42332,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer) { throw new NotImplementedException(); }
+        public static void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v2.0]
         /// Define an array of generic vertex attribute data
@@ -42357,12 +42357,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42384,12 +42384,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42411,12 +42411,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] T5[,,] pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] T5[,,] pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42438,12 +42438,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="stride">
         /// Specifies the byte offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
         /// </param>
-        /// <param name="pointer">[length: size,type,stride]
+        /// <param name="pointer">[length: COMPSIZE(size,type,stride)]
         /// Specifies a offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the ArrayBuffer target. The initial value is 0.
         /// </param>
         [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
         [CLSCompliant(false)]
-        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] ref T5 pointer)
+        public static void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL4.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute, CountAttribute(Computed = "size,type,stride")] ref T5 pointer)
             where T5 : struct
          { throw new NotImplementedException(); }
 
@@ -42492,14 +42492,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP2uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP2(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -42520,14 +42520,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP3uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP3(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
@@ -42548,14 +42548,14 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, Int32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] Int32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.3 or ARB_vertex_type_2_10_10_10_rev|VERSION_3_3]</summary>
         /// <param name="type"></param>
         /// <param name="value">[length: 1]</param>
         [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev|VERSION_3_3", Version = "3.3", EntryPoint = "glVertexP4uiv")]
         [CLSCompliant(false)]
-        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, UInt32* value) { throw new NotImplementedException(); }
+        public static unsafe void VertexP4(OpenTK.Graphics.OpenGL4.PackedPointerType type, [CountAttribute(Count = 1)] UInt32* value) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v1.0]
         /// Set the viewport
@@ -42584,12 +42584,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(Int32 first, Int32 count, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -42600,12 +42600,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(Int32 first, Int32 count, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -42616,12 +42616,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportArray(Int32 first, Int32 count, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportArray(Int32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -42632,12 +42632,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(UInt32 first, Int32 count, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -42648,12 +42648,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static void ViewportArray(UInt32 first, Int32 count, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set multiple viewports
@@ -42664,12 +42664,12 @@ namespace OpenTK.Graphics.OpenGL4
         /// <param name="count">
         /// Specify the number of viewports to set.
         /// </param>
-        /// <param name="v">[length: count]
+        /// <param name="v">[length: COMPSIZE(count)]
         /// Specify the address of an array containing the viewport parameters.
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportArrayv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportArray(UInt32 first, Int32 count, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportArray(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42726,7 +42726,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(Int32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42739,7 +42739,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(Int32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42752,7 +42752,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportIndexed(Int32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportIndexed(Int32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42765,7 +42765,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(UInt32 index, Single[] v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] Single[] v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42778,7 +42778,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static void ViewportIndexed(UInt32 index, ref Single v) { throw new NotImplementedException(); }
+        public static void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] ref Single v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v4.1 or ARB_viewport_array|VERSION_4_1]
         /// Set a specified viewport
@@ -42791,7 +42791,7 @@ namespace OpenTK.Graphics.OpenGL4
         /// </param>
         [AutoGenerated(Category = "ARB_viewport_array|VERSION_4_1", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
         [CLSCompliant(false)]
-        public static unsafe void ViewportIndexed(UInt32 index, Single* v) { throw new NotImplementedException(); }
+        public static unsafe void ViewportIndexed(UInt32 index, [CountAttribute(Count = 4)] Single* v) { throw new NotImplementedException(); }
 
         /// <summary>[requires: v3.2 or ARB_sync|VERSION_3_2]
         /// Instruct the GL server to block until the specified sync object becomes signaled
@@ -43149,7 +43149,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -43180,7 +43180,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -43211,7 +43211,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute, CountAttribute(Parameter = "count")] Int32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -43242,7 +43242,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32[] ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All[] severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32[] lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -43273,7 +43273,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All sources, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All types, [OutAttribute, CountAttribute(Parameter = "count")] out UInt32 ids, [OutAttribute, CountAttribute(Parameter = "count")] out OpenTK.Graphics.OpenGL4.All severities, [OutAttribute, CountAttribute(Parameter = "count")] out Int32 lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve messages from the debug message log
@@ -43304,7 +43304,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetDebugMessageLogKHR")]
             [CLSCompliant(false)]
-            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog) { throw new NotImplementedException(); }
+            public static unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* sources, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] OpenTK.Graphics.OpenGL4.All* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder messageLog) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glGetGraphicsResetStatusKHR")]
@@ -43465,7 +43465,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -43487,7 +43487,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -43509,7 +43509,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -43531,7 +43531,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -43553,7 +43553,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a named object identified within a namespace
@@ -43575,7 +43575,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// </param>
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL4.All identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -43595,7 +43595,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -43615,7 +43615,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -43635,7 +43635,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label) { throw new NotImplementedException(); }
+            public static unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_debug]
             /// Retrieve the label of a sync object identified by a pointer
@@ -43655,7 +43655,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43677,7 +43677,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43699,7 +43699,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43721,7 +43721,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43743,7 +43743,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43765,7 +43765,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43787,7 +43787,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43809,7 +43809,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43831,7 +43831,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43853,7 +43853,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32[] length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43875,7 +43875,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
+            public static void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] out Int32 length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -43897,7 +43897,7 @@ namespace OpenTK.Graphics.OpenGL4
             [Obsolete("Use out overload instead")]
             [AutoGenerated(Category = "KHR_debug", Version = "", EntryPoint = "glGetObjectPtrLabelKHR")]
             [CLSCompliant(false)]
-            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
+            public static unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] StringBuilder label)
                 where T0 : struct
              { throw new NotImplementedException(); }
 
@@ -44120,7 +44120,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [OutAttribute] IntPtr data) { throw new NotImplementedException(); }
+            public static void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data) { throw new NotImplementedException(); }
 
             /// <summary>[requires: KHR_robustness]</summary>
             /// <param name="x"></param>
@@ -44133,7 +44133,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -44148,7 +44148,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -44163,7 +44163,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
             [CLSCompliant(false)]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] T7[,,] data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -44177,7 +44177,7 @@ namespace OpenTK.Graphics.OpenGL4
             /// <param name="bufSize"></param>
             /// <param name="data">[length: bufSize]</param>
             [AutoGenerated(Category = "KHR_robustness", Version = "", EntryPoint = "glReadnPixelsKHR")]
-            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
+            public static void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL4.PixelFormat format, OpenTK.Graphics.OpenGL4.PixelType type, Int32 bufSize, [InAttribute, OutAttribute, CountAttribute(Parameter = "bufSize")] ref T7 data)
                 where T7 : struct
              { throw new NotImplementedException(); }
 
@@ -44200,28 +44200,28 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBufferPageCommitmentARB(System.Int32 target, IntPtr offset, Int32 size, bool commit);
         [Slot(83)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glCompileShaderIncludeARB(UInt32 shader, Int32 count, IntPtr path, Int32* length);
+        private static extern unsafe void glCompileShaderIncludeARB(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr path, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(123)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe IntPtr glCreateSyncFromCLeventARB([OutAttribute] IntPtr* context, [OutAttribute] IntPtr* @event, UInt32 flags);
         [Slot(129)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageCallbackARB(DebugProcArb callback, IntPtr userParam);
+        private static extern void glDebugMessageCallbackARB(DebugProcArb callback, [CountAttribute(Computed = "callback")] IntPtr userParam);
         [Slot(132)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControlARB(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControlARB(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(135)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsertARB(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsertARB(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Parameter = "length")] IntPtr buf);
         [Slot(139)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDeleteNamedStringARB(Int32 namelen, IntPtr name);
+        private static extern void glDeleteNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name);
         [Slot(162)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDispatchComputeGroupSizeARB(UInt32 num_groups_x, UInt32 num_groups_y, UInt32 num_groups_z, UInt32 group_size_x, UInt32 group_size_y, UInt32 group_size_z);
         [Slot(243)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogARB(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogARB(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(255)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusARB();
@@ -44230,64 +44230,64 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern Int64 glGetImageHandleARB(UInt32 texture, Int32 level, bool layered, Int32 layer, System.Int32 format);
         [Slot(278)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedStringARB(Int32 namelen, IntPtr name, Int32 bufSize, [OutAttribute] Int32* stringlen, [OutAttribute] IntPtr @string);
+        private static extern unsafe void glGetNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* stringlen, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr @string);
         [Slot(279)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetNamedStringivARB(Int32 namelen, IntPtr name, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetNamedStringivARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(281)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnColorTableARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr table);
+        private static extern void glGetnColorTableARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr table);
         [Slot(283)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnCompressedTexImageARB(System.Int32 target, Int32 lod, Int32 bufSize, [OutAttribute] IntPtr img);
+        private static extern void glGetnCompressedTexImageARB(System.Int32 target, Int32 lod, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img);
         [Slot(285)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnConvolutionFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr image);
+        private static extern void glGetnConvolutionFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr image);
         [Slot(287)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnHistogramARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr values);
+        private static extern void glGetnHistogramARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values);
         [Slot(289)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapdvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Double* v);
+        private static extern unsafe void glGetnMapdvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* v);
         [Slot(291)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapfvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Single* v);
+        private static extern unsafe void glGetnMapfvARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* v);
         [Slot(293)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnMapivARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute] Int32* v);
+        private static extern unsafe void glGetnMapivARB(System.Int32 target, System.Int32 query, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* v);
         [Slot(295)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnMinmaxARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr values);
+        private static extern void glGetnMinmaxARB(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr values);
         [Slot(297)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapfvARB(System.Int32 map, Int32 bufSize, [OutAttribute] Single* values);
+        private static extern unsafe void glGetnPixelMapfvARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* values);
         [Slot(299)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapuivARB(System.Int32 map, Int32 bufSize, [OutAttribute] UInt32* values);
+        private static extern unsafe void glGetnPixelMapuivARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* values);
         [Slot(301)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPixelMapusvARB(System.Int32 map, Int32 bufSize, [OutAttribute] UInt16* values);
+        private static extern unsafe void glGetnPixelMapusvARB(System.Int32 map, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt16* values);
         [Slot(303)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnPolygonStippleARB(Int32 bufSize, [OutAttribute] Byte* pattern);
+        private static extern unsafe void glGetnPolygonStippleARB(Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Byte* pattern);
         [Slot(305)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnSeparableFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 rowBufSize, [OutAttribute] IntPtr row, Int32 columnBufSize, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span);
+        private static extern void glGetnSeparableFilterARB(System.Int32 target, System.Int32 format, System.Int32 type, Int32 rowBufSize, [OutAttribute, CountAttribute(Parameter = "rowBufSize")] IntPtr row, Int32 columnBufSize, [OutAttribute, CountAttribute(Parameter = "columnBufSize")] IntPtr column, [OutAttribute, CountAttribute(Count = 0)] IntPtr span);
         [Slot(307)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetnTexImageARB(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr img);
+        private static extern void glGetnTexImageARB(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr img);
         [Slot(309)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformdvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetnUniformdvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Double* @params);
         [Slot(311)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformfvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetnUniformfvARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Single* @params);
         [Slot(314)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetnUniformivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(317)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetnUniformuivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetnUniformuivARB(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] UInt32* @params);
         [Slot(365)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int64 glGetTextureHandleARB(UInt32 texture);
@@ -44302,7 +44302,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern byte glIsImageHandleResidentARB(UInt64 handle);
         [Slot(413)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern byte glIsNamedStringARB(Int32 namelen, IntPtr name);
+        private static extern byte glIsNamedStringARB(Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name);
         [Slot(422)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glIsTextureHandleResidentARB(UInt64 handle);
@@ -44332,16 +44332,16 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glNamedBufferPageCommitmentARB(UInt32 buffer, IntPtr offset, Int32 size, bool commit);
         [Slot(470)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glNamedStringARB(System.Int32 type, Int32 namelen, IntPtr name, Int32 stringlen, IntPtr @string);
+        private static extern void glNamedStringARB(System.Int32 type, Int32 namelen, [CountAttribute(Parameter = "namelen")] IntPtr name, Int32 stringlen, [CountAttribute(Parameter = "stringlen")] IntPtr @string);
         [Slot(526)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniformHandleui64ARB(UInt32 program, Int32 location, UInt64 value);
         [Slot(527)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformHandleui64vARB(UInt32 program, Int32 location, Int32 count, UInt64* values);
+        private static extern unsafe void glProgramUniformHandleui64vARB(UInt32 program, Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* values);
         [Slot(552)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsARB(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsARB(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
         [Slot(600)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexPageCommitmentARB(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, bool resident);
@@ -44350,7 +44350,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glUniformHandleui64ARB(Int32 location, UInt64 value);
         [Slot(670)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformHandleui64vARB(Int32 location, Int32 count, UInt64* value);
+        private static extern unsafe void glUniformHandleui64vARB(Int32 location, Int32 count, [CountAttribute(Parameter = "count")] UInt64* value);
         [Slot(767)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL1ui64ARB(UInt32 index, UInt64 x);
@@ -44392,13 +44392,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBindBufferRange(System.Int32 target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size);
         [Slot(11)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindBuffersBase(System.Int32 target, UInt32 first, Int32 count, UInt32* buffers);
+        private static extern unsafe void glBindBuffersBase(System.Int32 target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers);
         [Slot(12)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindBuffersRange(System.Int32 target, UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, IntPtr* sizes);
+        private static extern unsafe void glBindBuffersRange(System.Int32 target, UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] IntPtr* sizes);
         [Slot(13)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBindFragDataLocation(UInt32 program, UInt32 color, IntPtr name);
+        private static extern void glBindFragDataLocation(UInt32 program, UInt32 color, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(14)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindFragDataLocationIndexed(UInt32 program, UInt32 colorNumber, UInt32 index, IntPtr name);
@@ -44410,7 +44410,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBindImageTexture(UInt32 unit, UInt32 texture, Int32 level, bool layered, Int32 layer, System.Int32 access, System.Int32 format);
         [Slot(17)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindImageTextures(UInt32 first, Int32 count, UInt32* textures);
+        private static extern unsafe void glBindImageTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures);
         [Slot(18)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindProgramPipeline(UInt32 pipeline);
@@ -44422,13 +44422,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBindSampler(UInt32 unit, UInt32 sampler);
         [Slot(21)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindSamplers(UInt32 first, Int32 count, UInt32* samplers);
+        private static extern unsafe void glBindSamplers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(22)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindTexture(System.Int32 target, UInt32 texture);
         [Slot(23)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindTextures(UInt32 first, Int32 count, UInt32* textures);
+        private static extern unsafe void glBindTextures(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* textures);
         [Slot(24)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBindTextureUnit(UInt32 unit, UInt32 texture);
@@ -44443,7 +44443,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBindVertexBuffer(UInt32 bindingindex, UInt32 buffer, IntPtr offset, Int32 stride);
         [Slot(28)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glBindVertexBuffers(UInt32 first, Int32 count, UInt32* buffers, IntPtr* offsets, Int32* strides);
+        private static extern unsafe void glBindVertexBuffers(UInt32 first, Int32 count, [CountAttribute(Parameter = "count")] UInt32* buffers, [CountAttribute(Parameter = "count")] IntPtr* offsets, [CountAttribute(Parameter = "count")] Int32* strides);
         [Slot(29)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glBlendColor(Single red, Single green, Single blue, Single alpha);
@@ -44479,13 +44479,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glBlitNamedFramebuffer(UInt32 readFramebuffer, UInt32 drawFramebuffer, Int32 srcX0, Int32 srcY0, Int32 srcX1, Int32 srcY1, Int32 dstX0, Int32 dstY0, Int32 dstX1, Int32 dstY1, System.Int32 mask, System.Int32 filter);
         [Slot(44)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferData(System.Int32 target, IntPtr size, IntPtr data, System.Int32 usage);
+        private static extern void glBufferData(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 usage);
         [Slot(46)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferStorage(System.Int32 target, IntPtr size, IntPtr data, System.Int32 flags);
+        private static extern void glBufferStorage(System.Int32 target, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data, System.Int32 flags);
         [Slot(47)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, IntPtr data);
+        private static extern void glBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(48)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glCheckFramebufferStatus(System.Int32 target);
@@ -44500,22 +44500,22 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glClear(System.Int32 mask);
         [Slot(52)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearBufferData(System.Int32 target, System.Int32 internalformat, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearBufferData(System.Int32 target, System.Int32 internalformat, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(53)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearBufferfi(System.Int32 buffer, Int32 drawbuffer, Single depth, Int32 stencil);
         [Slot(54)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, Single* value);
+        private static extern unsafe void glClearBufferfv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Single* value);
         [Slot(55)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, Int32* value);
+        private static extern unsafe void glClearBufferiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] Int32* value);
         [Slot(56)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearBufferSubData(System.Int32 target, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearBufferSubData(System.Int32 target, System.Int32 internalformat, IntPtr offset, IntPtr size, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(57)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, UInt32* value);
+        private static extern unsafe void glClearBufferuiv(System.Int32 buffer, Int32 drawbuffer, [CountAttribute(Computed = "buffer")] UInt32* value);
         [Slot(58)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glClearColor(Single red, Single green, Single blue, Single alpha);
@@ -44548,10 +44548,10 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glClearStencil(Int32 s);
         [Slot(68)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearTexImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearTexImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(69)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glClearTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type")] IntPtr data);
         [Slot(70)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glClientWaitSync(IntPtr sync, System.Int32 flags, UInt64 timeout);
@@ -44569,46 +44569,46 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glColorP3ui(System.Int32 type, UInt32 color);
         [Slot(75)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorP3uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glColorP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(76)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glColorP4ui(System.Int32 type, UInt32 color);
         [Slot(77)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorP4uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glColorP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(78)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorSubTable(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, IntPtr data);
+        private static extern void glColorSubTable(System.Int32 target, Int32 start, Int32 count, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,count")] IntPtr data);
         [Slot(79)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glColorTable(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr table);
+        private static extern void glColorTable(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr table);
         [Slot(80)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glColorTableParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(81)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glColorTableParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glColorTableParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(82)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCompileShader(UInt32 shader);
         [Slot(84)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(85)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(86)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(87)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(88)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(89)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
+        private static extern void glCompressedTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, [CountAttribute(Parameter = "imageSize")] IntPtr data);
         [Slot(90)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCompressedTextureSubImage1D(UInt32 texture, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, Int32 imageSize, IntPtr data);
@@ -44620,22 +44620,22 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glCompressedTextureSubImage3D(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, Int32 imageSize, IntPtr data);
         [Slot(93)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter1D(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter1D(System.Int32 target, System.Int32 internalformat, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr image);
         [Slot(94)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glConvolutionFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr image);
+        private static extern void glConvolutionFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr image);
         [Slot(95)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameterf(System.Int32 target, System.Int32 pname, Single @params);
         [Slot(96)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glConvolutionParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(97)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glConvolutionParameteri(System.Int32 target, System.Int32 pname, Int32 @params);
         [Slot(98)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glConvolutionParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glConvolutionParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(99)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glCopyBufferSubData(System.Int32 readTarget, System.Int32 writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size);
@@ -44707,7 +44707,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern Int32 glCreateShader(System.Int32 type);
         [Slot(122)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, IntPtr strings);
+        private static extern Int32 glCreateShaderProgramv(System.Int32 type, Int32 count, [CountAttribute(Parameter = "count")] IntPtr strings);
         [Slot(124)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glCreateTextures(System.Int32 target, Int32 n, [OutAttribute] UInt32* textures);
@@ -44725,31 +44725,31 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glDebugMessageCallback(DebugProc callback, IntPtr userParam);
         [Slot(131)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, UInt32* ids, bool enabled);
+        private static extern unsafe void glDebugMessageControl(System.Int32 source, System.Int32 type, System.Int32 severity, Int32 count, [CountAttribute(Parameter = "count")] UInt32* ids, bool enabled);
         [Slot(134)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
+        private static extern void glDebugMessageInsert(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, [CountAttribute(Computed = "buf,length")] IntPtr buf);
         [Slot(137)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteBuffers(Int32 n, UInt32* buffers);
+        private static extern unsafe void glDeleteBuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(138)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteFramebuffers(Int32 n, UInt32* framebuffers);
+        private static extern unsafe void glDeleteFramebuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(140)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteProgram(UInt32 program);
         [Slot(141)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteProgramPipelines(Int32 n, UInt32* pipelines);
+        private static extern unsafe void glDeleteProgramPipelines(Int32 n, [CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(142)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteQueries(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteQueries(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(143)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteRenderbuffers(Int32 n, UInt32* renderbuffers);
+        private static extern unsafe void glDeleteRenderbuffers(Int32 n, [CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(144)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteSamplers(Int32 count, UInt32* samplers);
+        private static extern unsafe void glDeleteSamplers(Int32 count, [CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(145)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDeleteShader(UInt32 shader);
@@ -44758,13 +44758,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glDeleteSync(IntPtr sync);
         [Slot(147)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTextures(Int32 n, UInt32* textures);
+        private static extern unsafe void glDeleteTextures(Int32 n, [CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(148)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, UInt32* ids);
+        private static extern unsafe void glDeleteTransformFeedbacks(Int32 n, [CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(149)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDeleteVertexArrays(Int32 n, UInt32* arrays);
+        private static extern unsafe void glDeleteVertexArrays(Int32 n, [CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(150)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthFunc(System.Int32 func);
@@ -44776,7 +44776,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glDepthRange(Double near, Double far);
         [Slot(153)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDepthRangeArrayv(UInt32 first, Int32 count, Double* v);
+        private static extern unsafe void glDepthRangeArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Double* v);
         [Slot(154)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDepthRangef(Single n, Single f);
@@ -44821,34 +44821,34 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glDrawBuffer(System.Int32 buf);
         [Slot(169)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glDrawBuffers(Int32 n, System.Int32* bufs);
+        private static extern unsafe void glDrawBuffers(Int32 n, [CountAttribute(Parameter = "n")] System.Int32* bufs);
         [Slot(170)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawElements(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(171)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 basevertex);
+        private static extern void glDrawElementsBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex);
         [Slot(172)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawElementsIndirect(System.Int32 mode, System.Int32 type, IntPtr indirect);
         [Slot(173)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount);
+        private static extern void glDrawElementsInstanced(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount);
         [Slot(174)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, UInt32 baseinstance);
+        private static extern void glDrawElementsInstancedBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, UInt32 baseinstance);
         [Slot(175)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, Int32 basevertex);
+        private static extern void glDrawElementsInstancedBaseVertex(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 instancecount, Int32 basevertex);
         [Slot(176)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawElementsInstancedBaseVertexBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
+        private static extern void glDrawElementsInstancedBaseVertexBaseInstance(System.Int32 mode, Int32 count, System.Int32 type, [CountAttribute(Parameter = "count")] IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance);
         [Slot(177)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices);
+        private static extern void glDrawRangeElements(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices);
         [Slot(178)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glDrawRangeElementsBaseVertex(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, IntPtr indices, Int32 basevertex);
+        private static extern void glDrawRangeElementsBaseVertex(System.Int32 mode, UInt32 start, UInt32 end, Int32 count, System.Int32 type, [CountAttribute(Computed = "count,type")] IntPtr indices, Int32 basevertex);
         [Slot(179)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glDrawTransformFeedback(System.Int32 mode, UInt32 id);
@@ -44926,7 +44926,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glFrontFace(System.Int32 mode);
         [Slot(204)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute] UInt32* buffers);
+        private static extern unsafe void glGenBuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* buffers);
         [Slot(205)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGenerateMipmap(System.Int32 target);
@@ -44935,94 +44935,94 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glGenerateTextureMipmap(UInt32 texture);
         [Slot(207)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers);
+        private static extern unsafe void glGenFramebuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* framebuffers);
         [Slot(208)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines);
+        private static extern unsafe void glGenProgramPipelines(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* pipelines);
         [Slot(209)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenQueries(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(210)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers);
+        private static extern unsafe void glGenRenderbuffers(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* renderbuffers);
         [Slot(211)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute] UInt32* samplers);
+        private static extern unsafe void glGenSamplers(Int32 count, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* samplers);
         [Slot(212)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute] UInt32* textures);
+        private static extern unsafe void glGenTextures(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* textures);
         [Slot(213)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute] UInt32* ids);
+        private static extern unsafe void glGenTransformFeedbacks(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* ids);
         [Slot(214)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays);
+        private static extern unsafe void glGenVertexArrays(Int32 n, [OutAttribute, CountAttribute(Parameter = "n")] UInt32* arrays);
         [Slot(215)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAtomicCounterBufferiv(UInt32 program, UInt32 bufferIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveAtomicCounterBufferiv(UInt32 program, UInt32 bufferIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(216)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(217)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveSubroutineName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] IntPtr name);
         [Slot(218)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineUniformiv(UInt32 program, System.Int32 shadertype, UInt32 index, System.Int32 pname, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetActiveSubroutineUniformiv(UInt32 program, System.Int32 shadertype, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* values);
         [Slot(219)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveSubroutineUniformName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveSubroutineUniformName(UInt32 program, System.Int32 shadertype, UInt32 index, Int32 bufsize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufsize")] IntPtr name);
         [Slot(220)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(221)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformBlockiv(UInt32 program, UInt32 uniformBlockIndex, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "program,uniformBlockIndex,pname")] Int32* @params);
         [Slot(222)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformBlockName);
+        private static extern unsafe void glGetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformBlockName);
         [Slot(223)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr uniformName);
+        private static extern unsafe void glGetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr uniformName);
         [Slot(224)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetActiveUniformsiv(UInt32 program, Int32 uniformCount, [CountAttribute(Parameter = "uniformCount")] UInt32* uniformIndices, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "uniformCount,pname")] Int32* @params);
         [Slot(225)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* shaders);
+        private static extern unsafe void glGetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute, CountAttribute(Count = 1)] Int32* count, [OutAttribute, CountAttribute(Parameter = "maxCount")] UInt32* shaders);
         [Slot(226)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetAttribLocation(UInt32 program, IntPtr name);
         [Slot(227)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleani_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] bool* data);
         [Slot(228)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute] bool* data);
+        private static extern unsafe void glGetBooleanv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] bool* data);
         [Slot(229)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetBufferParameteri64v(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(230)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetBufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(231)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetBufferPointerv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(232)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data);
+        private static extern void glGetBufferSubData(System.Int32 target, IntPtr offset, IntPtr size, [OutAttribute, CountAttribute(Parameter = "size")] IntPtr data);
         [Slot(233)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetColorTable(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr table);
+        private static extern void glGetColorTable(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr table);
         [Slot(234)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetColorTableParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(235)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetColorTableParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetColorTableParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(236)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetCompressedTexImage(System.Int32 target, Int32 level, [OutAttribute] IntPtr img);
+        private static extern void glGetCompressedTexImage(System.Int32 target, Int32 level, [OutAttribute, CountAttribute(Computed = "target,level")] IntPtr img);
         [Slot(237)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetCompressedTextureImage(UInt32 texture, Int32 level, Int32 bufSize, [OutAttribute] IntPtr pixels);
@@ -45031,85 +45031,85 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glGetCompressedTextureSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, Int32 bufSize, [OutAttribute] IntPtr pixels);
         [Slot(239)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetConvolutionFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr image);
+        private static extern void glGetConvolutionFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr image);
         [Slot(240)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetConvolutionParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(241)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetConvolutionParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetConvolutionParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(242)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLog(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(245)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoublei_v(System.Int32 target, UInt32 index, [OutAttribute] Double* data);
+        private static extern unsafe void glGetDoublei_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Double* data);
         [Slot(246)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetDoublev(System.Int32 pname, [OutAttribute] Double* data);
+        private static extern unsafe void glGetDoublev(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* data);
         [Slot(247)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetError();
         [Slot(248)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloati_v(System.Int32 target, UInt32 index, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloati_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Single* data);
         [Slot(249)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute] Single* data);
+        private static extern unsafe void glGetFloatv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* data);
         [Slot(250)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetFragDataIndex(UInt32 program, IntPtr name);
         [Slot(251)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetFragDataLocation(UInt32 program, IntPtr name);
+        private static extern Int32 glGetFragDataLocation(UInt32 program, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(252)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferAttachmentParameteriv(System.Int32 target, System.Int32 attachment, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(253)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetFramebufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(254)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatus();
         [Slot(257)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetHistogram(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetHistogram(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(258)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetHistogramParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(259)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetHistogramParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetHistogramParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(261)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64i_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int64* data);
         [Slot(262)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute] Int64* data);
+        private static extern unsafe void glGetInteger64v(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* data);
         [Slot(263)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegeri_v(System.Int32 target, UInt32 index, [OutAttribute, CountAttribute(Computed = "target")] Int32* data);
         [Slot(264)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute] Int32* data);
+        private static extern unsafe void glGetIntegerv(System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* data);
         [Slot(265)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformati64v(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetInternalformati64v(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int64* @params);
         [Slot(266)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetInternalformativ(System.Int32 target, System.Int32 internalformat, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(267)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetMinmax(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr values);
+        private static extern void glGetMinmax(System.Int32 target, bool reset, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr values);
         [Slot(268)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetMinmaxParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(269)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMinmaxParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetMinmaxParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(270)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute] Single* val);
+        private static extern unsafe void glGetMultisamplefv(System.Int32 pname, UInt32 index, [OutAttribute, CountAttribute(Computed = "pname")] Single* val);
         [Slot(271)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetNamedBufferParameteri64v(UInt32 buffer, System.Int32 pname, [OutAttribute] Int64* @params);
@@ -45187,97 +45187,97 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern unsafe void glGetnUniformuiv(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(319)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabel(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(321)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(323)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute] IntPtr @params);
+        private static extern void glGetPointerv(System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr @params);
         [Slot(325)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] System.Int32* binaryFormat, [OutAttribute] IntPtr binary);
+        private static extern unsafe void glGetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] System.Int32* binaryFormat, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr binary);
         [Slot(326)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(327)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramInterfaceiv(UInt32 program, System.Int32 programInterface, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(328)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramiv(UInt32 program, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(329)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(330)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramPipelineiv(UInt32 pipeline, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(331)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceIndex(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(332)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, System.Int32* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetProgramResourceiv(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 propCount, [CountAttribute(Parameter = "propCount")] System.Int32* props, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* @params);
         [Slot(333)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceLocation(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(334)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetProgramResourceLocationIndex(UInt32 program, System.Int32 programInterface, IntPtr name);
+        private static extern Int32 glGetProgramResourceLocationIndex(UInt32 program, System.Int32 programInterface, [CountAttribute(Computed = "name")] IntPtr name);
         [Slot(335)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetProgramResourceName(UInt32 program, System.Int32 programInterface, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(336)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetProgramStageiv(UInt32 program, System.Int32 shadertype, System.Int32 pname, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetProgramStageiv(UInt32 program, System.Int32 shadertype, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* values);
         [Slot(337)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryIndexediv(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryIndexediv(System.Int32 target, UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(338)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(339)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjecti64v(UInt32 id, System.Int32 pname, [OutAttribute] Int64* @params);
+        private static extern unsafe void glGetQueryObjecti64v(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int64* @params);
         [Slot(340)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectiv(UInt32 id, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetQueryObjectiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(341)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectui64v(UInt32 id, System.Int32 pname, [OutAttribute] UInt64* @params);
+        private static extern unsafe void glGetQueryObjectui64v(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt64* @params);
         [Slot(342)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetQueryObjectuiv(UInt32 id, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(343)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetRenderbufferParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(344)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetSamplerParameterfv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(345)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(346)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(347)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetSamplerParameteriv(UInt32 sampler, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(348)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetSeparableFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span);
+        private static extern void glGetSeparableFilter(System.Int32 target, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr row, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr column, [OutAttribute, CountAttribute(Computed = "target,format,type")] IntPtr span);
         [Slot(349)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr infoLog);
+        private static extern unsafe void glGetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr infoLog);
         [Slot(350)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetShaderiv(UInt32 shader, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(351)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision);
+        private static extern unsafe void glGetShaderPrecisionFormat(System.Int32 shadertype, System.Int32 precisiontype, [OutAttribute, CountAttribute(Count = 2)] Int32* range, [OutAttribute, CountAttribute(Count = 2)] Int32* precision);
         [Slot(352)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr source);
+        private static extern unsafe void glGetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr source);
         [Slot(353)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern IntPtr glGetString(System.Int32 name);
@@ -45292,28 +45292,28 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern Int32 glGetSubroutineUniformLocation(UInt32 program, System.Int32 shadertype, IntPtr name);
         [Slot(357)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values);
+        private static extern unsafe void glGetSynciv(IntPtr sync, System.Int32 pname, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] Int32* values);
         [Slot(358)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetTexImage(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glGetTexImage(System.Int32 target, Int32 level, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "target,level,format,type")] IntPtr pixels);
         [Slot(359)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexLevelParameterfv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(360)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexLevelParameteriv(System.Int32 target, Int32 level, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(361)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetTexParameterfv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Single* @params);
         [Slot(362)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIiv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameterIiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(363)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameterIuiv(System.Int32 target, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetTexParameterIuiv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(364)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetTexParameteriv(System.Int32 target, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(366)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetTextureImage(UInt32 texture, Int32 level, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr pixels);
@@ -45349,31 +45349,31 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern unsafe void glGetTransformFeedbackiv(UInt32 xfb, System.Int32 pname, [OutAttribute] Int32* param);
         [Slot(378)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] System.Int32* type, [OutAttribute] IntPtr name);
+        private static extern unsafe void glGetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Count = 1)] Int32* size, [OutAttribute, CountAttribute(Count = 1)] System.Int32* type, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr name);
         [Slot(379)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern Int32 glGetUniformBlockIndex(UInt32 program, IntPtr uniformBlockName);
+        private static extern Int32 glGetUniformBlockIndex(UInt32 program, [CountAttribute(Computed = "")] IntPtr uniformBlockName);
         [Slot(380)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformdv(UInt32 program, Int32 location, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetUniformdv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Double* @params);
         [Slot(381)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetUniformfv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Single* @params);
         [Slot(382)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, IntPtr uniformNames, [OutAttribute] UInt32* uniformIndices);
+        private static extern unsafe void glGetUniformIndices(UInt32 program, Int32 uniformCount, [CountAttribute(Computed = "uniformCount")] IntPtr uniformNames, [OutAttribute, CountAttribute(Computed = "uniformCount")] UInt32* uniformIndices);
         [Slot(383)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetUniformiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] Int32* @params);
         [Slot(384)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern Int32 glGetUniformLocation(UInt32 program, IntPtr name);
         [Slot(385)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformSubroutineuiv(System.Int32 shadertype, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformSubroutineuiv(System.Int32 shadertype, Int32 location, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(386)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetUniformuiv(UInt32 program, Int32 location, [OutAttribute, CountAttribute(Computed = "program,location")] UInt32* @params);
         [Slot(387)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glGetVertexArrayIndexed64iv(UInt32 vaobj, UInt32 index, System.Int32 pname, [OutAttribute] Int64* param);
@@ -45385,25 +45385,25 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern unsafe void glGetVertexArrayiv(UInt32 vaobj, System.Int32 pname, [OutAttribute] Int32* param);
         [Slot(390)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribdv(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribdv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Double* @params);
         [Slot(391)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute] Single* @params);
+        private static extern unsafe void glGetVertexAttribfv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Single* @params);
         [Slot(392)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribIiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] Int32* @params);
         [Slot(393)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute] UInt32* @params);
+        private static extern unsafe void glGetVertexAttribIuiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] UInt32* @params);
         [Slot(394)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute] Int32* @params);
+        private static extern unsafe void glGetVertexAttribiv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 4)] Int32* @params);
         [Slot(395)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetVertexAttribLdv(UInt32 index, System.Int32 pname, [OutAttribute] Double* @params);
+        private static extern unsafe void glGetVertexAttribLdv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Computed = "pname")] Double* @params);
         [Slot(397)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute] IntPtr pointer);
+        private static extern void glGetVertexAttribPointerv(UInt32 index, System.Int32 pname, [OutAttribute, CountAttribute(Count = 1)] IntPtr pointer);
         [Slot(398)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glHint(System.Int32 target, System.Int32 mode);
@@ -45418,7 +45418,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glInvalidateBufferSubData(UInt32 buffer, IntPtr offset, IntPtr length);
         [Slot(402)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments);
+        private static extern unsafe void glInvalidateFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments);
         [Slot(403)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern unsafe void glInvalidateNamedFramebufferData(UInt32 framebuffer, Int32 numAttachments, System.Int32* attachments);
@@ -45427,7 +45427,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern unsafe void glInvalidateNamedFramebufferSubData(UInt32 framebuffer, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(405)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
+        private static extern unsafe void glInvalidateSubFramebuffer(System.Int32 target, Int32 numAttachments, [CountAttribute(Parameter = "numAttachments")] System.Int32* attachments, Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(406)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glInvalidateTexImage(UInt32 texture, Int32 level);
@@ -45511,43 +45511,43 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glMinSampleShading(Single value);
         [Slot(441)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawArrays(System.Int32 mode, Int32* first, Int32* count, Int32 drawcount);
+        private static extern unsafe void glMultiDrawArrays(System.Int32 mode, [CountAttribute(Computed = "count")] Int32* first, [CountAttribute(Computed = "drawcount")] Int32* count, Int32 drawcount);
         [Slot(442)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiDrawArraysIndirect(System.Int32 mode, IntPtr indirect, Int32 drawcount, Int32 stride);
+        private static extern void glMultiDrawArraysIndirect(System.Int32 mode, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride);
         [Slot(444)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElements(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 drawcount);
+        private static extern unsafe void glMultiDrawElements(System.Int32 mode, [CountAttribute(Computed = "drawcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount);
         [Slot(445)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiDrawElementsBaseVertex(System.Int32 mode, Int32* count, System.Int32 type, IntPtr indices, Int32 drawcount, Int32* basevertex);
+        private static extern unsafe void glMultiDrawElementsBaseVertex(System.Int32 mode, [CountAttribute(Computed = "drawcount")] Int32* count, System.Int32 type, [CountAttribute(Computed = "drawcount")] IntPtr indices, Int32 drawcount, [CountAttribute(Computed = "drawcount")] Int32* basevertex);
         [Slot(446)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glMultiDrawElementsIndirect(System.Int32 mode, System.Int32 type, IntPtr indirect, Int32 drawcount, Int32 stride);
+        private static extern void glMultiDrawElementsIndirect(System.Int32 mode, System.Int32 type, [CountAttribute(Computed = "drawcount,stride")] IntPtr indirect, Int32 drawcount, Int32 stride);
         [Slot(448)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP1ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(449)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP1uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP1uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(450)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP2ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(451)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP2uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP2uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(452)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP3ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(453)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP3uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP3uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(454)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glMultiTexCoordP4ui(System.Int32 texture, System.Int32 type, UInt32 coords);
         [Slot(455)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glMultiTexCoordP4uiv(System.Int32 texture, System.Int32 type, UInt32* coords);
+        private static extern unsafe void glMultiTexCoordP4uiv(System.Int32 texture, System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(456)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glNamedBufferData(UInt32 buffer, Int32 size, IntPtr data, System.Int32 usage);
@@ -45589,16 +45589,16 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glNormalP3ui(System.Int32 type, UInt32 coords);
         [Slot(472)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glNormalP3uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glNormalP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(473)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, IntPtr label);
+        private static extern void glObjectLabel(System.Int32 identifier, UInt32 name, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(475)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, IntPtr label);
+        private static extern void glObjectPtrLabel(IntPtr ptr, Int32 length, [CountAttribute(Computed = "label,length")] IntPtr label);
         [Slot(477)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPatchParameterfv(System.Int32 pname, Single* values);
+        private static extern unsafe void glPatchParameterfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* values);
         [Slot(478)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPatchParameteri(System.Int32 pname, Int32 value);
@@ -45616,13 +45616,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glPointParameterf(System.Int32 pname, Single param);
         [Slot(483)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameterfv(System.Int32 pname, Single* @params);
+        private static extern unsafe void glPointParameterfv(System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(484)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointParameteri(System.Int32 pname, Int32 param);
         [Slot(485)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glPointParameteriv(System.Int32 pname, Int32* @params);
+        private static extern unsafe void glPointParameteriv(System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(486)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glPointSize(Single size);
@@ -45640,7 +45640,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glPrimitiveRestartIndex(UInt32 index);
         [Slot(492)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, IntPtr binary, Int32 length);
+        private static extern void glProgramBinary(UInt32 program, System.Int32 binaryFormat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(493)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramParameteri(UInt32 program, System.Int32 pname, Int32 value);
@@ -45649,157 +45649,157 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glProgramUniform1d(UInt32 program, Int32 location, Double v0);
         [Slot(495)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform1dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Double* value);
         [Slot(496)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1f(UInt32 program, Int32 location, Single v0);
         [Slot(497)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform1fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Single* value);
         [Slot(498)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1i(UInt32 program, Int32 location, Int32 v0);
         [Slot(499)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform1iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] Int32* value);
         [Slot(500)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform1ui(UInt32 program, Int32 location, UInt32 v0);
         [Slot(501)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform1uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(502)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2d(UInt32 program, Int32 location, Double v0, Double v1);
         [Slot(503)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform2dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Double* value);
         [Slot(504)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2f(UInt32 program, Int32 location, Single v0, Single v1);
         [Slot(505)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform2fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Single* value);
         [Slot(506)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2i(UInt32 program, Int32 location, Int32 v0, Int32 v1);
         [Slot(507)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform2iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] Int32* value);
         [Slot(508)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform2ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1);
         [Slot(509)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform2uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 2)] UInt32* value);
         [Slot(510)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3d(UInt32 program, Int32 location, Double v0, Double v1, Double v2);
         [Slot(511)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform3dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Double* value);
         [Slot(512)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3f(UInt32 program, Int32 location, Single v0, Single v1, Single v2);
         [Slot(513)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform3fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Single* value);
         [Slot(514)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(515)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform3iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] Int32* value);
         [Slot(516)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform3ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(517)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform3uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 3)] UInt32* value);
         [Slot(518)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4d(UInt32 program, Int32 location, Double v0, Double v1, Double v2, Double v3);
         [Slot(519)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4dv(UInt32 program, Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glProgramUniform4dv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Double* value);
         [Slot(520)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4f(UInt32 program, Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(521)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glProgramUniform4fv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Single* value);
         [Slot(522)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4i(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(523)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glProgramUniform4iv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] Int32* value);
         [Slot(524)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProgramUniform4ui(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(525)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glProgramUniform4uiv(UInt32 program, Int32 location, Int32 count, [CountAttribute(Count = 4)] UInt32* value);
         [Slot(528)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Double* value);
         [Slot(529)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 2)] Single* value);
         [Slot(530)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(531)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(532)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix2x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(533)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix2x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(534)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Double* value);
         [Slot(535)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 3)] Single* value);
         [Slot(536)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(537)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(538)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix3x4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(539)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix3x4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(540)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Double* value);
         [Slot(541)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Count = 4)] Single* value);
         [Slot(542)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x2dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(543)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x2fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(544)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glProgramUniformMatrix4x3dv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Double* value);
         [Slot(545)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glProgramUniformMatrix4x3fv(UInt32 program, Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count")] Single* value);
         [Slot(546)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glProvokingVertex(System.Int32 mode);
         [Slot(547)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
+        private static extern void glPushDebugGroup(System.Int32 source, UInt32 id, Int32 length, [CountAttribute(Computed = "message,length")] IntPtr message);
         [Slot(549)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glQueryCounter(UInt32 id, System.Int32 target);
@@ -45811,7 +45811,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
         [Slot(554)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute] IntPtr pixels);
+        private static extern void glReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [OutAttribute, CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(555)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glReleaseShaderCompiler();
@@ -45841,46 +45841,46 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glSamplerParameterf(UInt32 sampler, System.Int32 pname, Single param);
         [Slot(564)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, Single* param);
+        private static extern unsafe void glSamplerParameterfv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* param);
         [Slot(565)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSamplerParameteri(UInt32 sampler, System.Int32 pname, Int32 param);
         [Slot(566)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIiv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameterIiv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(567)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, UInt32* param);
+        private static extern unsafe void glSamplerParameterIuiv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* param);
         [Slot(568)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, Int32* param);
+        private static extern unsafe void glSamplerParameteriv(UInt32 sampler, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* param);
         [Slot(569)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScissor(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(570)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glScissorArrayv(UInt32 first, Int32 count, Int32* v);
+        private static extern unsafe void glScissorArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Int32* v);
         [Slot(571)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glScissorIndexed(UInt32 index, Int32 left, Int32 bottom, Int32 width, Int32 height);
         [Slot(572)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glScissorIndexedv(UInt32 index, Int32* v);
+        private static extern unsafe void glScissorIndexedv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(573)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glSecondaryColorP3ui(System.Int32 type, UInt32 color);
         [Slot(574)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glSecondaryColorP3uiv(System.Int32 type, UInt32* color);
+        private static extern unsafe void glSecondaryColorP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* color);
         [Slot(575)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glSeparableFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr row, IntPtr column);
+        private static extern void glSeparableFilter2D(System.Int32 target, System.Int32 internalformat, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "target,format,type,width")] IntPtr row, [CountAttribute(Computed = "target,format,type,height")] IntPtr column);
         [Slot(576)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderBinary(Int32 count, UInt32* shaders, System.Int32 binaryformat, IntPtr binary, Int32 length);
+        private static extern unsafe void glShaderBinary(Int32 count, [CountAttribute(Parameter = "count")] UInt32* shaders, System.Int32 binaryformat, [CountAttribute(Parameter = "length")] IntPtr binary, Int32 length);
         [Slot(577)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, IntPtr @string, Int32* length);
+        private static extern unsafe void glShaderSource(UInt32 shader, Int32 count, [CountAttribute(Parameter = "count")] IntPtr @string, [CountAttribute(Parameter = "count")] Int32* length);
         [Slot(578)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glShaderStorageBlockBinding(UInt32 program, UInt32 storageBlockIndex, UInt32 storageBlockBinding);
@@ -45913,37 +45913,37 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glTexCoordP1ui(System.Int32 type, UInt32 coords);
         [Slot(588)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP1uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP1uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(589)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP2ui(System.Int32 type, UInt32 coords);
         [Slot(590)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP2uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP2uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(591)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP3ui(System.Int32 type, UInt32 coords);
         [Slot(592)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP3uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(593)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexCoordP4ui(System.Int32 type, UInt32 coords);
         [Slot(594)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexCoordP4uiv(System.Int32 type, UInt32* coords);
+        private static extern unsafe void glTexCoordP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* coords);
         [Slot(595)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage1D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(596)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage2D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(597)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexImage2DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, bool fixedsamplelocations);
         [Slot(598)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexImage3D(System.Int32 target, Int32 level, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(599)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexImage3DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
@@ -45952,19 +45952,19 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glTexParameterf(System.Int32 target, System.Int32 pname, Single param);
         [Slot(602)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, Single* @params);
+        private static extern unsafe void glTexParameterfv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Single* @params);
         [Slot(603)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexParameteri(System.Int32 target, System.Int32 pname, Int32 param);
         [Slot(604)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIiv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameterIiv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(605)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameterIuiv(System.Int32 target, System.Int32 pname, UInt32* @params);
+        private static extern unsafe void glTexParameterIuiv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] UInt32* @params);
         [Slot(606)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, Int32* @params);
+        private static extern unsafe void glTexParameteriv(System.Int32 target, System.Int32 pname, [CountAttribute(Computed = "pname")] Int32* @params);
         [Slot(607)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTexStorage1D(System.Int32 target, Int32 levels, System.Int32 internalformat, Int32 width);
@@ -45982,13 +45982,13 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glTexStorage3DMultisample(System.Int32 target, Int32 samples, System.Int32 internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations);
         [Slot(612)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage1D(System.Int32 target, Int32 level, Int32 xoffset, Int32 width, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width")] IntPtr pixels);
         [Slot(613)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage2D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height")] IntPtr pixels);
         [Slot(614)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, IntPtr pixels);
+        private static extern void glTexSubImage3D(System.Int32 target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, System.Int32 format, System.Int32 type, [CountAttribute(Computed = "format,type,width,height,depth")] IntPtr pixels);
         [Slot(615)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glTextureBarrier();
@@ -46051,163 +46051,163 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glTransformFeedbackBufferRange(UInt32 xfb, UInt32 index, UInt32 buffer, IntPtr offset, Int32 size);
         [Slot(635)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, IntPtr varyings, System.Int32 bufferMode);
+        private static extern void glTransformFeedbackVaryings(UInt32 program, Int32 count, [CountAttribute(Parameter = "count")] IntPtr varyings, System.Int32 bufferMode);
         [Slot(636)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1d(Int32 location, Double x);
         [Slot(637)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform1dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Double* value);
         [Slot(638)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1f(Int32 location, Single v0);
         [Slot(639)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform1fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Single* value);
         [Slot(640)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1i(Int32 location, Int32 v0);
         [Slot(641)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform1iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] Int32* value);
         [Slot(642)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform1ui(Int32 location, UInt32 v0);
         [Slot(643)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform1uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*1")] UInt32* value);
         [Slot(644)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2d(Int32 location, Double x, Double y);
         [Slot(645)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform2dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Double* value);
         [Slot(646)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2f(Int32 location, Single v0, Single v1);
         [Slot(647)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform2fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Single* value);
         [Slot(648)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2i(Int32 location, Int32 v0, Int32 v1);
         [Slot(649)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform2iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] Int32* value);
         [Slot(650)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform2ui(Int32 location, UInt32 v0, UInt32 v1);
         [Slot(651)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform2uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*2")] UInt32* value);
         [Slot(652)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3d(Int32 location, Double x, Double y, Double z);
         [Slot(653)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform3dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Double* value);
         [Slot(654)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3f(Int32 location, Single v0, Single v1, Single v2);
         [Slot(655)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform3fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Single* value);
         [Slot(656)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3i(Int32 location, Int32 v0, Int32 v1, Int32 v2);
         [Slot(657)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform3iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] Int32* value);
         [Slot(658)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform3ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2);
         [Slot(659)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform3uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*3")] UInt32* value);
         [Slot(660)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4d(Int32 location, Double x, Double y, Double z, Double w);
         [Slot(661)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4dv(Int32 location, Int32 count, Double* value);
+        private static extern unsafe void glUniform4dv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Double* value);
         [Slot(662)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4f(Int32 location, Single v0, Single v1, Single v2, Single v3);
         [Slot(663)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, Single* value);
+        private static extern unsafe void glUniform4fv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(664)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4i(Int32 location, Int32 v0, Int32 v1, Int32 v2, Int32 v3);
         [Slot(665)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, Int32* value);
+        private static extern unsafe void glUniform4iv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] Int32* value);
         [Slot(666)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniform4ui(Int32 location, UInt32 v0, UInt32 v1, UInt32 v2, UInt32 v3);
         [Slot(667)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, UInt32* value);
+        private static extern unsafe void glUniform4uiv(Int32 location, Int32 count, [CountAttribute(Parameter = "count*4")] UInt32* value);
         [Slot(668)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glUniformBlockBinding(UInt32 program, UInt32 uniformBlockIndex, UInt32 uniformBlockBinding);
         [Slot(671)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Double* value);
         [Slot(672)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*4")] Single* value);
         [Slot(673)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2x3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value);
         [Slot(674)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(675)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix2x4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value);
         [Slot(676)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix2x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(677)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Double* value);
         [Slot(678)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*9")] Single* value);
         [Slot(679)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3x2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Double* value);
         [Slot(680)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*6")] Single* value);
         [Slot(681)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix3x4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value);
         [Slot(682)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix3x4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(683)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Double* value);
         [Slot(684)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*16")] Single* value);
         [Slot(685)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4x2dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Double* value);
         [Slot(686)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x2fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*8")] Single* value);
         [Slot(687)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3dv(Int32 location, Int32 count, bool transpose, Double* value);
+        private static extern unsafe void glUniformMatrix4x3dv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Double* value);
         [Slot(688)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, Single* value);
+        private static extern unsafe void glUniformMatrix4x3fv(Int32 location, Int32 count, bool transpose, [CountAttribute(Parameter = "count*12")] Single* value);
         [Slot(689)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glUniformSubroutinesuiv(System.Int32 shadertype, Int32 count, UInt32* indices);
+        private static extern unsafe void glUniformSubroutinesuiv(System.Int32 shadertype, Int32 count, [CountAttribute(Parameter = "count")] UInt32* indices);
         [Slot(690)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern byte glUnmapBuffer(System.Int32 target);
@@ -46255,109 +46255,109 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glVertexAttrib1d(UInt32 index, Double x);
         [Slot(705)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib1dv(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(706)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1f(UInt32 index, Single x);
         [Slot(707)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib1fv(UInt32 index, [CountAttribute(Count = 1)] Single* v);
         [Slot(708)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib1s(UInt32 index, Int16 x);
         [Slot(709)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib1sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib1sv(UInt32 index, [CountAttribute(Count = 1)] Int16* v);
         [Slot(710)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2d(UInt32 index, Double x, Double y);
         [Slot(711)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib2dv(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(712)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2f(UInt32 index, Single x, Single y);
         [Slot(713)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib2fv(UInt32 index, [CountAttribute(Count = 2)] Single* v);
         [Slot(714)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib2s(UInt32 index, Int16 x, Int16 y);
         [Slot(715)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib2sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib2sv(UInt32 index, [CountAttribute(Count = 2)] Int16* v);
         [Slot(716)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3d(UInt32 index, Double x, Double y, Double z);
         [Slot(717)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib3dv(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(718)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3f(UInt32 index, Single x, Single y, Single z);
         [Slot(719)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib3fv(UInt32 index, [CountAttribute(Count = 3)] Single* v);
         [Slot(720)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib3s(UInt32 index, Int16 x, Int16 y, Int16 z);
         [Slot(721)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib3sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib3sv(UInt32 index, [CountAttribute(Count = 3)] Int16* v);
         [Slot(722)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4bv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4bv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(723)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4d(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(724)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttrib4dv(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(725)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4f(UInt32 index, Single x, Single y, Single z, Single w);
         [Slot(726)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4fv(UInt32 index, Single* v);
+        private static extern unsafe void glVertexAttrib4fv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(727)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(728)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nbv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttrib4Nbv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(729)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Niv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttrib4Niv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(730)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nsv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4Nsv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(731)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4Nub(UInt32 index, Byte x, Byte y, Byte z, Byte w);
         [Slot(732)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4Nubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(733)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nuiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4Nuiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(734)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4Nusv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4Nusv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(735)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttrib4s(UInt32 index, Int16 x, Int16 y, Int16 z, Int16 w);
         [Slot(736)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttrib4sv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(737)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4ubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttrib4ubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(738)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttrib4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(739)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttrib4usv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttrib4usv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(740)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribBinding(UInt32 attribindex, UInt32 bindingindex);
@@ -46372,124 +46372,124 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glVertexAttribI1i(UInt32 index, Int32 x);
         [Slot(744)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI1iv(UInt32 index, [CountAttribute(Count = 1)] Int32* v);
         [Slot(745)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI1ui(UInt32 index, UInt32 x);
         [Slot(746)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI1uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI1uiv(UInt32 index, [CountAttribute(Count = 1)] UInt32* v);
         [Slot(747)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2i(UInt32 index, Int32 x, Int32 y);
         [Slot(748)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI2iv(UInt32 index, [CountAttribute(Count = 2)] Int32* v);
         [Slot(749)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI2ui(UInt32 index, UInt32 x, UInt32 y);
         [Slot(750)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI2uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI2uiv(UInt32 index, [CountAttribute(Count = 2)] UInt32* v);
         [Slot(751)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3i(UInt32 index, Int32 x, Int32 y, Int32 z);
         [Slot(752)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI3iv(UInt32 index, [CountAttribute(Count = 3)] Int32* v);
         [Slot(753)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI3ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z);
         [Slot(754)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI3uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI3uiv(UInt32 index, [CountAttribute(Count = 3)] UInt32* v);
         [Slot(755)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4bv(UInt32 index, SByte* v);
+        private static extern unsafe void glVertexAttribI4bv(UInt32 index, [CountAttribute(Count = 4)] SByte* v);
         [Slot(756)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4i(UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w);
         [Slot(757)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4iv(UInt32 index, Int32* v);
+        private static extern unsafe void glVertexAttribI4iv(UInt32 index, [CountAttribute(Count = 4)] Int32* v);
         [Slot(758)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4sv(UInt32 index, Int16* v);
+        private static extern unsafe void glVertexAttribI4sv(UInt32 index, [CountAttribute(Count = 4)] Int16* v);
         [Slot(759)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4ubv(UInt32 index, Byte* v);
+        private static extern unsafe void glVertexAttribI4ubv(UInt32 index, [CountAttribute(Count = 4)] Byte* v);
         [Slot(760)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribI4ui(UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w);
         [Slot(761)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, UInt32* v);
+        private static extern unsafe void glVertexAttribI4uiv(UInt32 index, [CountAttribute(Count = 4)] UInt32* v);
         [Slot(762)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribI4usv(UInt32 index, UInt16* v);
+        private static extern unsafe void glVertexAttribI4usv(UInt32 index, [CountAttribute(Count = 4)] UInt16* v);
         [Slot(763)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribIFormat(UInt32 attribindex, Int32 size, System.Int32 type, UInt32 relativeoffset);
         [Slot(764)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribIPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(765)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL1d(UInt32 index, Double x);
         [Slot(766)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL1dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL1dv(UInt32 index, [CountAttribute(Count = 1)] Double* v);
         [Slot(769)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL2d(UInt32 index, Double x, Double y);
         [Slot(770)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL2dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL2dv(UInt32 index, [CountAttribute(Count = 2)] Double* v);
         [Slot(771)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL3d(UInt32 index, Double x, Double y, Double z);
         [Slot(772)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL3dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL3dv(UInt32 index, [CountAttribute(Count = 3)] Double* v);
         [Slot(773)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribL4d(UInt32 index, Double x, Double y, Double z, Double w);
         [Slot(774)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribL4dv(UInt32 index, Double* v);
+        private static extern unsafe void glVertexAttribL4dv(UInt32 index, [CountAttribute(Count = 4)] Double* v);
         [Slot(775)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribLFormat(UInt32 attribindex, Int32 size, System.Int32 type, UInt32 relativeoffset);
         [Slot(776)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribLPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribLPointer(UInt32 index, Int32 size, System.Int32 type, Int32 stride, [CountAttribute(Parameter = "size")] IntPtr pointer);
         [Slot(777)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP1ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(778)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP1uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP1uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(779)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP2ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(780)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP2uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP2uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(781)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP3ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(782)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP3uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP3uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(783)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexAttribP4ui(UInt32 index, System.Int32 type, bool normalized, UInt32 value);
         [Slot(784)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexAttribP4uiv(UInt32 index, System.Int32 type, bool normalized, UInt32* value);
+        private static extern unsafe void glVertexAttribP4uiv(UInt32 index, System.Int32 type, bool normalized, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(785)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, IntPtr pointer);
+        private static extern void glVertexAttribPointer(UInt32 index, Int32 size, System.Int32 type, bool normalized, Int32 stride, [CountAttribute(Computed = "size,type,stride")] IntPtr pointer);
         [Slot(786)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexBindingDivisor(UInt32 bindingindex, UInt32 divisor);
@@ -46498,31 +46498,31 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glVertexP2ui(System.Int32 type, UInt32 value);
         [Slot(788)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP2uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP2uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(789)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexP3ui(System.Int32 type, UInt32 value);
         [Slot(790)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP3uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP3uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(791)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glVertexP4ui(System.Int32 type, UInt32 value);
         [Slot(792)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glVertexP4uiv(System.Int32 type, UInt32* value);
+        private static extern unsafe void glVertexP4uiv(System.Int32 type, [CountAttribute(Count = 1)] UInt32* value);
         [Slot(793)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewport(Int32 x, Int32 y, Int32 width, Int32 height);
         [Slot(794)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glViewportArrayv(UInt32 first, Int32 count, Single* v);
+        private static extern unsafe void glViewportArrayv(UInt32 first, Int32 count, [CountAttribute(Computed = "count")] Single* v);
         [Slot(795)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glViewportIndexedf(UInt32 index, Single x, Single y, Single w, Single h);
         [Slot(796)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glViewportIndexedfv(UInt32 index, Single* v);
+        private static extern unsafe void glViewportIndexedfv(UInt32 index, [CountAttribute(Count = 4)] Single* v);
         [Slot(797)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glWaitSync(IntPtr sync, System.Int32 flags, UInt64 timeout);
@@ -46540,7 +46540,7 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glDebugMessageInsertKHR(System.Int32 source, System.Int32 type, UInt32 id, System.Int32 severity, Int32 length, IntPtr buf);
         [Slot(244)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute] System.Int32* sources, [OutAttribute] System.Int32* types, [OutAttribute] UInt32* ids, [OutAttribute] System.Int32* severities, [OutAttribute] Int32* lengths, [OutAttribute] IntPtr messageLog);
+        private static extern unsafe Int32 glGetDebugMessageLogKHR(UInt32 count, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* sources, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* types, [OutAttribute, CountAttribute(Parameter = "count")] UInt32* ids, [OutAttribute, CountAttribute(Parameter = "count")] System.Int32* severities, [OutAttribute, CountAttribute(Parameter = "count")] Int32* lengths, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr messageLog);
         [Slot(256)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern System.Int32 glGetGraphicsResetStatusKHR();
@@ -46555,10 +46555,10 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern unsafe void glGetnUniformuivKHR(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params);
         [Slot(320)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectLabelKHR(System.Int32 identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(322)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] IntPtr label);
+        private static extern unsafe void glGetObjectPtrLabelKHR(IntPtr ptr, Int32 bufSize, [OutAttribute, CountAttribute(Count = 1)] Int32* length, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr label);
         [Slot(324)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
         private static extern void glGetPointervKHR(System.Int32 pname, [OutAttribute] IntPtr @params);
@@ -46576,6 +46576,6 @@ namespace OpenTK.Graphics.OpenGL4
         private static extern void glPushDebugGroupKHR(System.Int32 source, UInt32 id, Int32 length, IntPtr message);
         [Slot(553)]
         [DllImport(Library, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]
-        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute] IntPtr data);
+        private static extern void glReadnPixelsKHR(Int32 x, Int32 y, Int32 width, Int32 height, System.Int32 format, System.Int32 type, Int32 bufSize, [OutAttribute, CountAttribute(Parameter = "bufSize")] IntPtr data);
     }
 }